Adjunct controller for a telephone system

ABSTRACT

A telephone system for providing enhanced telephone services. The system includes a telephone switch servicing a plurality of telephone subscribers via communication facilities of the switch, which facilities hande both voice and data communications. A telephone switch controller is coupled to the switch for controlling the switch to provide an enhanced service not otherwise available in the switch. The controller communicates with the switch using data in the form of switch functions. The controller includes a memory for storing a sequence of switch functions, swhich sequence defines the enhanced service. The controller communicates a prompt to a caller in response to a telephone call placed by the caller to a predetermined telephone address associated with a subscriber and communicates the sequence of switch functions stored in the memory to the switching system in response to a command received from the caller to provide the enhanced service.

This application is a division of application Ser. No. 08/249,453 filedMay 26, 1994, now U.S. Pat. No. 5,673,297, which application is in turnis a division of application Ser. No. 07/480,242, filed Feb. 15, 1990(now U.S. Pat. No. 5,375,161, issued Dec. 20, 1994), which is acontinuation-in-part of application Ser. No. 07/439,601, filed Nov. 21,1989 (now abandoned), which is a continuation-in-part of applicationSer. No. 06/841,931, filed Mar. 20, 1986 (now U.S. Pat. No. 4,893,335,issued Jan. 9, 1990), which is a continuation-in-part of applicationSer. No. 06/650,821, filed Sep. 14, 1984 (now abandoned).

INCORPORATION BY REFERENCE

The subject matter disclosed and claimed in copending and allowed U.S.application Ser. No. 06/841,931, entitled "Remote Access TelephoneControl System", invented by the same inventors and assigned to the sameassignee as the instant application, is hereby incorporated byreference.

BACKGROUND OF THE INVENTION

The present invention pertains to the telephone equipment art and, moreparticularly, to a telephone control system which control a telephoneswitching system from an adjunct controller to deliver enhancedtelephone communication features without having to modify the telephoneswitching system.

In the prior art telephone systems typically comprise a switch which iscapable of handling many simultaneous telephone calls and a switchcontroller which controls the switch. As features are added to telephonesystems, in the prior art, the features were added by modifying thecontroller to provide enhanced features. However, there are certaindrawbacks associated with this approach. First, as the switchcontrollers become more and more robust and can handle or provide moreand more features, they become more and more difficult to design anddebug. Second, if it is desirable to provide an enhanced feature on anation-wide scale, that means that many, many switch controllers need tobe upgraded to provide the enhanced feature.

There is a need for a simpler way of creating new, enhanced features foruse on a telephone system. The present invention addresses this need.

The present invention provides an adjunct controller which receivestelephone calls directed by callers to users, which telephone calls areswitched to the adjunct controller by the telephone system in responseto a telephone call placed a calling party. The adjunct controller theninteracts with the calling party, for example, by sending a voiceannouncement to the calling party which prompts the calling party toinvoke an enhanced feature. The enhanced feature may be, for example,branch routing the call to a particular department of a business asselected by the calling party. Alternatively, the enhanced feature maybe, for example, giving the calling party a choice between requesting ameet me call with the party being called (if the call is urgent) orsaving a voice mail message for the party being called (if the call isless urgent). In any event, the telephone system functions in its normalmanner and is able to respond to rather simple commands from the adjunctcontroller (such as initiating a call transfer, a call conference, diala number, etc), while the adjunct controller delivers the enhancedtelephone service.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating the various modes of operationand interfacing equipment for the preferred embodiment of the telephonecontrol system;

FIG. 2 is a block diagram illustrating the principle components of thetelephone control system;

FIG. 3 is a block diagram of the Communicator;

FIG. 4 is a block diagram of the Ultrasonic Transmitter;

FIG. 5 is a block diagram of the Call Processing facility;

FIG. 6 is a flowchart illustrating operation of the E&M Control Circuit;

FIG. 7 is a diagram illustrating the Subscriber Master Record;

FIG. 8 is a diagram illustrating the Mode Memory;

FIG. 9 is a flowchart of the Main Task for the Call Processing facility;

FIG. 10 is flowchart of the Code Processing Facility--Network MessageTask;

FIG. 11 is a flowchart of the Code Processing Facility--Call TerminationTask;

FIG. 12 is a flowchart of the Call Processing Facility--Call HandlerTask;

FIG. 13 is a flowchart of the Call Processing Facility--Dynamic ModeAssignment;

FIG. 14 is a flowchart of the Call Processing Facility--DirectForwarding Function;

FIG. 15 is a flowchart of the Call Processing Facility--AnnouncedForwarding Function;

FIG. 16 is a flowchart of the Call Processing Facility--Priority/UrgentScreen Function;

FIG. 17 is a flowchart of the Call Processing Facility--VIP Code ScreenFunction;

FIG. 18 is a flowchart of the Call Processing Facility--Branch RoutingFunction;

FIG. 19 is a flowchart of the Call Processing Facility--Caller MessageCenter Function;

FIG. 20 is a flowchart of the Call Processing Facility--Voice-ScreenFunction;

FIG. 21 is a flowchart of the Call Processing Facility--Meet Me CallerFunction;

FIG. 22 is a flowchart of the Call Processing Facility--`Send Page`Subroutine;

FIG. 23 is a flowchart of the Call Processing Facility--Command ModeFunction;

FIG. 24 is a flowchart of the Call Processing Facility--Command MessageCenter Function;

FIG. 25 is a flowchart of the Call Processing Facility--CommandForwarding Number Function;

FIG. 26 is a flowchart of the Call Processing Facility--Command FeatureTimer Function;

FIG. 27 is a flowchart of the Call Processing Facility--Command MemoryFunction;

FIG. 28 is a flowchart of the Call Processing Facility--Command OutsideCall Function;

FIG. 29 is a flowchart of the Call Processing Facility--Command HelpFunction;

FIG. 30 is a flowchart of the Call Processing Facility--Command Meet MeFunction;

FIG. 31 is a flowchart of the Call Processing Facility--Command BranchRoute Function;

FIG. 32 is a flowchart of the Call Processing Facility--Command AdvancedFeatures Function;

FIG. 33 is a block diagram illustrating the principle components of theMeet Me Facility;

FIG. 34 is a flowchart of the Meet Me Facility Main Task;

FIG. 35 is a block diagram illustrating the principle components of theSubscriber Access Facility;

FIG. 36 is a flowchart illustrating operation of the E&M Control Circuitfor the Subscriber Access Facility;

FIG. 37 is a flowchart of the Subscriber Access Facility Main Task;

FIG. 38 is a block diagram illustrating the principle components of theCommunicator Access Facility;

FIG. 39 is a flowchart of the Communicator Access Facility Main Task;

FIG. 40 is a flowchart of the Communicator Main Task;

FIG. 41 is a block diagram illustrating the principle components of thePager Dialing Facility;

FIG. 42 is a flowchart of the Pager Dialing Facility Main Task;

FIG. 43 is a block diagram illustrating the principle components of theClient Services Facility; and

FIG. 44 is a flowchart of the Client Services Facility Main Task.

SPECIFICATION OVERVIEW

FIG. 1 illustrates in block diagram form, the manner in which theTelephone Control System may be used to enhance the accessibility ofit's subscribers. As is shown, the Telephone Control System 1 connectswith the PSTN 2 via facilities 3. The Telephone Control System 1 maycontrol switch 4, causing it to connect incoming and outgoing trunks.

As is shown, alternate preferred embodiments exist with respect toswitch 4.

In the first preferred embodiment, the switch 4 is actually part of thePSTN 1. In this embodiment, the facilities 3 must be capable oftransmitting switch control signals from the Telephone Control System 1to the switch 4. An example of this type of facility is a CENTREX line,which allows the transmission of switch control signals in the form of`hookswitch flashes` and touch tones to initiate call-conferencing andcall-transfer. A recently available variation of the CENTREX facility isa CENTREX DID trunk, which not only has the `hookflash` capability, butalso provides the called number in the form of Direct-Inward-Dialingdigits. This is the form of facility 3 which is referred to in thedetailed description of the preferred embodiment. Another variation ofthe CENTREX facility provides the called number via a separate data-linkknown as Simplified Message Desk Interface (SMDI).

Copending U.S. application Ser. No. 06/841,931, which issued Jan. 9,1990, as U.S. Pat. No. 4,893,335, incorporated by reference herein,describes in detail a system for controlling the PSTN switch.

In an alternate preferred embodiment, the switch 4 is part of theTelephone Control System 1. In this embodiment, the facilities 3 needonly include standard DID trunks for the incoming calls, and standardoutgoing trunks. The access control system 1 controls switch 4 directly,causing it to connect paths between various incoming and outgoing trunksas required.

Again referring to FIG. 1, the Telephone Control System 1 also connectsto the PSTN 2 via standard tip-ring phone lines 5, for purposes ofcommunicating with Paging System 6. The Paging System may be any of thecommonly known paging systems such as those comprised of transmitterssuch as Motorola's PACE or Quintron model QT250B and paging terminalssuch as Glenayre model GL3000XL or BBL System 3, which send encodedmessages via radio frequency to cause a unique pager, or beeper, worn bya paging system subscriber, to sound an alert, produce a message in adisplay, activate a light, vibrate, or produce any of a variety of otheralerting mechanisms. Typically, these paging systems will cause a pagerto be alerted in response to another individual dialing a phone numberwhich corresponds to that individual's pager. This phone number isrouted via the PSTN 2 to a paging terminal via facilities 7, which inturn determines, typically via DID digits, who the call is intended for,and then sends a radio frequency message to alert that individual'spager. To cause a subscriber's pager to be activated, the TelephoneControl System 1 then need only come off hook on one of the lines 5, anddial the phone number that corresponds to the subscriber's pager.Although not described in this preferred embodiment, it is anticipatedthat the Telephone Control System 1 could also interface to a pagingsystem directly via a dedicated data link.

An additional facility 5 connects the Telephone Control System 1 to thePSTN 2. This facility is a trunk which provides the Automatic NumberIdentification (ANI) of the calling party. An example of such a trunk isthe Feature Group D (FGD) trunk which is commonly used by interexchangecarriers. The interexchange carriers use the ANI information to properlybill the calling party. The Telephone Control System 1 uses this ANIinformation in a new and different manner. As will be described infurther detail herein, subscribers of the Telephone Control System 1 mayprogram the Telephone Control System 1 by calling it through trunkingfacilities 5. The access control system 1 automatically acquires theANI, or phone number of the calling party. This allows the accesscontrol system 1 to program the forwarding number for the subscriberwithout the subscriber needing to manually enter it. Although notdescribed in the preferred embodiment, it is anticipated that othertypes of facilities which provide ANI information may also be used forthis purpose. An example of another type of facility which provides ANIis a CENTREX line with an SMDI data link, which is now available fromseveral types of central offices. The SMDI data link is capable ofpassing both the called party number and the calling party number (ANI).

Still referring to FIG. 1, The Telephone Control System 1 is alsoconnected to a Packet Radio Transmitter/Receiver 9 via data-link 10. ThePacket Radio Transmitter/Receiver 9 may consist of any of the commonlyknown radio transceivers such as YAESU FT-470 and lCOM IC-u 4AT,equipped with a packet radio interface such as HEATHKIT HK-21. As willbe described in further detail herein, the Packet RadioTransmitter/Receiver 9 is used by the Telephone Control System 1 tointerface with the portable Communicator device 11, carried by anTelephone Control System subscriber. The Communicator 11 may both sendand receive DATA messages via radio frequency. The Communicator 11 mayalso receive ultrasonic messages from fixed ultrasonic transmitter 12,shown located in room 13. Ultrasonic transmitter 12 continuouslytransmits the phone number, and, if appropriate, the extension, of thephone 14 located in the same room or a signal indicating an appropriatecall control mode for a given situation such as do not disturb in ahospital operating room. It should be noted that, although the preferredembodiment disclosed herein describes transmitter 12 as ultrasonic, itis anticipated that an infrared transmitter may also be used. Theultrasonic transmitter has the advantage that it will pass signalsthrough a layer of clothes, which would be important for example if thesubscriber were carrying the Communicator 11 in a shirt pocket.

To aide in the discussion of the illustrative examples which follow,FIG. 1 also shows a subscriber's home 15, with a home phone 16; asubscriber's office 17, with an office phone 18; a cellular telephonesystem 19, which interfaces to a subscriber's car-phone 20; a factory21, with a factory phone 22; a pay telephone 23; a subscriber 24 withpager 25; and a caller's telephone 26.

The illustrative examples which follow are intended only to clarify someof the concepts, features, and objects of the invention, and do notdefine the scope of the invention.

Methods of Call-Handling

Following are several illustrative examples of the various call-handlingmodes of the Telephone Control System 1.

Direct Forwarding

For the sake of this example, assume that a caller at phone 26 wishes tospeak to a subscriber to the access control system 1, and further assumethat the subscriber is at home 15, and that he has preprogrammed thesystem to `direct forward` his calls to him at his home phone 16. Thecaller dials the access number for the subscriber, and the PSTN deliversthe call to the Telephone Control System 1 via facilities 3. Thefacilities 3 provide the access control system 1 with the called partyinformation (DID) digits. The Telephone Control System then refers toit's internal database to determine how to handle the call. The accesscontrol system determines that calls for this subscriber are to behandled via `direct forwarding` mode, and that the call is to beforwarded to the subscriber's home. The access control system then dialsthe subscriber's home on an outgoing facility 3, and instructs theswitch 4 to connect the incoming facility to the outgoing facility tocomplete the call. The PSTN 2 then delivers the call to home phone 16,causing it to ring, and the subscriber may pick up the phone and connectto the caller. Note that this mode of call-handling is referred to as`direct forwarding` because the call is forwarded without anyannouncement or prompting from the Telephone Control System 1.

Announced Forwarding

Assume again that a caller at phone 26 wishes to speak to a subscriberto the Telephone Control System 1. Also assume that the subscriber is athome 15, and that this time he has preprogrammed the system to`Announce-forward` his calls to him at his home phone 16. Again, thecaller dials the access number for the subscriber, and the PSTN deliversthe call to the Telephone Control System 1 via facilities 3. Uponreceiving the DID digits for this subscriber, the Telephone ControlSystem 1 determines that calls for this subscriber are to be handled via`announced forwarding` mode, and that the call is to be forwarded to thesubscriber's home. The access control system then plays a brief greetingto the caller: "Hello, you have reached the **ACCESSLINE** for Mr.Jones. We're connecting your call." The Telephone Control System thendials the phone number for phone 16 on an outgoing facility 3, andinstructs the switch 4 to connect the incoming facility to the outgoingfacility to complete the call. The PSTN 2 then delivers the call to homephone 16, causing it to ring, and the subscriber may pick up the phoneand connect to the caller.

Forwarding with Page

Assume again that a caller at phone 26 wishes to speak to a subscriberto the Telephone Control System 1. Also assume again that the subscriberis at home 15, and that this time he has preprogrammed the system to`Forward with page` his calls to him at his home phone 16. Again, thecaller dials the access number for the subscriber, and the PSTN deliversthe call to the Telephone Control System 1 via facilities 3. Uponreceiving the DID digits for this subscriber, the access control system1 determines that calls for this subscriber are to be handled via`forward with page` mode, and that the call is to be forwarded to thesubscriber's home. The access control system then plays a brief greetingto the caller: "Hello, you have reached the **ACCESSLINE** for Mr.Jones. We are sending a page to inform your party of the call. Pleasestay on the line." The Telephone Control System 1 then dials the phonenumber for the pager corresponding to this subscriber and informs thecaller "We have sent a page to alert your party and will connect youmomentarily." The access control system then dials the phone number forphone 16 on an outgoing facility 3, and instructs the switch 4 toconnect the incoming facility to the outgoing facility to complete thecall. The PSTN 2 then delivers the call to home phone 16, causing it toring, and the subscriber may pick up the phone and connect to thecaller. The subscriber, having been alerted to the incoming call by hispager, was ready to receive it.

Message Center

In some cases the subscriber may not be able to take calls and may wishthat his callers simply leave a message. In these cases, the subscribermay program the access control system 1 to connect calls to thesubscriber's preselected `message center`. The Telephone Control System1 may connect calls to either an `internal message center` or an`external message center`. The `external message center` is simply aphone number that the Telephone Control System 1 will forward calls toif in this mode. This may be the phone number for an answering service,a receptionist, a voice mail system, or any other appropriate locationas desired by the subscriber. If the subscriber elects to use the`internal message center`, then an example of a typical call may be asfollows.

Assume that a caller at phone 26 wishes to speak to a subscriber to theTelephone Control System 1. Also assume that the subscriber does notwish to be disturbed and that he has preprogrammed the system to`internal message center` mode. The caller dials the access number forthe subscriber, and the PSTN delivers the call to the Telephone ControlSystem 1 via facilities 3. Upon receiving the DID digits for thissubscriber, the Telephone Control System 1 determines that calls forthis subscriber are to be handled via `internal message center` mode.The Telephone Control System then plays a brief greeting to the caller:"Hello, you have reached the **ACCESSLINE** for Mr. Jones. Your party isnot readily available at the moment, however we will connect you to yourparty's message center where you may leave a detailed message . . .Please leave your message at the tone." The Telephone Control System 1then records the callers message and saves it for later playback by thesubscriber. In addition, should the subscriber have so elected, theaccess control system 1 may dial the phone number corresponding to thesubscriber's pager, to alert the subscriber to the message.

Priority-Call Screening

Assume again that a caller at phone 26 wishes to speak to a subscriberto the Telephone Control System 1. This time assume that the subscriberis at his office 17, and that he has preprogrammed the system to sendhis calls to him at his office via `priority call-screening`, with amessage asking the caller to ask for extension 123, which in thisexample is the extension number of the phone 18 on his desk. Again, thecaller at phone 26 dials the access number for the subscriber, and thePSTN 2 delivers the call to the access control system 1 via facilities3. Upon receiving the DID digits for this subscriber, the TelephoneControl System 1 determines that calls for this subscriber are to behandled via `priority call-screening` mode, and that the call is to beforwarded to the subscriber's office. The access control system 1 thenplays a brief greeting to the caller: "Hello, you have reached the**ACCESSLINE** for Mr. Jones. Your party is not readily available at themoment. If this call is urgent then please touch 0 now and we willattempt to connect you to your party. Otherwise, please hold the lineand we will connect you to your party's message center where you mayleave a detailed message." If the caller does not touch 0, then the callis delivered to the `message center` as described above. If the callerdoes touch 0, then the Telephone Control System 1 may inform the caller:"Please standby while we connect your call. When the call is answeredplease ask for extension number 123." The access control system thendials the preprogrammed lead phone number for the subscriber's office 17on an outgoing facility 3, and instructs the switch 4 to connect theincoming facility to the outgoing facility to complete the call. ThePSTN 2 then delivers the call to the receptionist at office 17, causingit to ring. When the receptionist answers, the caller will ask forextension 123, as he was instructed by access control system 1, and thereceptionist may connect the call to the subscriber's desk phone 18.

VIP Code Screening

Assume again that a caller at phone 26 wishes to speak to a subscriberto the Telephone Control System 1. This time assume that the subscriberis in his car, and that he has preprogrammed the system to send hiscalls to him at his car-phone 20 via `VIP code-screening`. In this mode,only those callers who have been told a special VIP code will be able toreach the subscriber. All other callers will be sent to the messagecenter. Again, the caller at phone 26 dials the access number for thesubscriber, and the PSTN 2 delivers the call to the Telephone ControlSystem 1 via facilities 3.

Upon receiving the DID digits for this subscriber, the access controlsystem 1 determines that calls for this subscriber are to be handled via`VIP code-screening` mode, and that the call is to be forwarded to thesubscriber's car phone 20. The Telephone Control System 1 then plays abrief greeting to the caller: "Hello, you have reached the**ACCESSLINE** for Mr. Jones. Your party is not readily available at themoment. Please enter your VIP code now, or hold the line and we willconnect you to your party's message center where you may leave adetailed message." If the caller does not enter the correct VIP code,then the call is delivered to the `message center` as described above.If the caller does enter the VIP code, then the Telephone Control System1 may inform the caller: "Please standby while we connect your call."The Telephone Control System then dials the telephone number forcar-phone 20 on an outgoing facility 3, and instructs the switch 4 toconnect the incoming facility to the outgoing facility to complete thecall. The PSTN 2 then delivers the call to the cellular telephone system19, which in turn delivers the call to the car-phone 20.

Voice-Screening

Assume again that a caller at phone 26 wishes to speak to a subscriberof the Telephone Control System 1. This time assume that the subscriber,Mr. Jones, is visiting his client's factory 21, and that he haspreprogrammed the system to send his calls to him at this location via`voice-screening`. Again, the caller at phone 26 dials the access numberfor the subscriber, and the PSTN 2 delivers the call to the accesscontrol system 1 via facilities 3. Upon receiving the DID digits forthis subscriber, the Telephone Control System 1 determines that callsfor this subscriber are to be handled via `voice-screening` mode, andthat the call is to be forwarded to his client's factory 21. The accesscontrol system 1 then plays a brief greeting to the caller: "Hello, youhave reached the **ACCESSLINE** for Mr. Jones. Please state your nameand the purpose of your call at the tone. After the tone, please stay onthe line while we attempt to locate your party and connect your call."The access control system 1 then records the caller's name and business,and then responds: "Thank you, please standby." The access controlsystem then dials the telephone number for factory 21 on an outgoingfacility 3, leaving the incoming call on hold. The PSTN 2 then deliversthe outgoing call to the lead telephone number of factory 21, which isanswered by the factory's receptionist. The Telephone Control Systemtells the receptionist "We have a call holding for Mr. Jones. Pleaselocate the party." The receptionist pages Mr. Jones via the factory'sspeaker system, informing him of the call. Mr. Jones then answers thecall at phone 22, and enters his Personal Identification Number (PIN)code. The access control system 1 then plays back the callers name andbusiness. The Telephone Control System 1 then asks Mr. Jones: "Pleasetouch 1 to connect the call, 2 to send the caller away, or 3 to send thecaller to your message center." In this example, Mr. Jones wishes tospeak to the caller, so he touches 1. The Telephone Control System 1instructs the switch 4 to connect the incoming facility to the outgoingfacility to complete the call.

Branch-Routing

Assume again that a caller at phone 26 wishes to speak to a subscriberof the Telephone Control System 1. This time assume that the subscriberis not a person, but a business; the ABC Factory Company 21, and thatthe Telephone Control System 1 has been preprogrammed to handle theircalls via `branch-routing` mode. Again, the caller at phone 26 dials theaccess number for the subscriber, and the PSTN 2 delivers the call tothe Telephone Control System 1 via facilities 3. Upon receiving the DIDdigits for this subscriber, the Telephone Control-System 1 determinesthat calls for this subscriber are to be handled via `branch-routing`mode. The Telephone Control System 1 then refers to it's memory andplays a pre-recorded `branch-routing` greeting to the caller: "Hello,you have reached the ABC Factory Company. Please touch 1 to speak to themanufacturing manager, 2 to speak to accounts receivable, 3 to speak toaccounts payable, 4 to speak to purchasing, or hold the line to speak tothe receptionist." Should the caller need help, he will hold the linefor a moment, and the Telephone Control System 1 responds: "Pleasestandby." The Telephone Control System then dials the telephone numberfor the factory's reception phone 22 on an outgoing facility 3, andinstructs the switch 4 to connect the incoming facility to the outgoingfacility to complete the call.

Meet-Me

Assume again that a caller at phone 26 wishes to speak to a subscriberto the Telephone Control System 1. This time assume that the subscriber,Mr. Jones, is away from the office today, and that he has preprogrammedthe system to handle his calls via `meet-me` mode. Again, the caller atphone 26 dials the access number for the subscriber, and the PSTN 2delivers the call to the Telephone Control System 1 via facilities 3.Upon receiving the DID digits for this subscriber, the Telephone ControlSystem 1 determines that calls for this subscriber are to be handled via`meet-me` mode. The Telephone Control System 1 then responds byproducing audible ringback to the caller, while dialing the phone numberfor the pager corresponding to this subscriber on facilities 5. TheTelephone Control System 1 then plays a brief message to the caller:"Hello, you have reached the **ACCESSLINE** for Mr. Jones. We are pagingyour party to a phone, please standby. If you are unable to wait you maytouch 9 to leave a message. Otherwise please hold the line." TheTelephone Control System 1 then places the caller on hold and waits forthe subscriber to call in. Meanwhile the subscriber 24 has received thepage via his pager 25, and is proceeding to pay phone 23 to answer thecall. The subscriber dials his own access number and the PSTN 2 deliversthe call to the Telephone Control System 1 via facilities 3. Thesubscriber then enters his own PIN code and is informed "You have acaller holding for you on your meet-me service. Please touch 4 to beconnected to the caller." It is also anticipated that if the caller hadhung up or left a message in the meantime, that the subscriber would beso informed. Assuming that the caller is still holding, and that thesubscriber touches 4, the access control system 1 instructs the switch 4to connect the incoming facility to the outgoing facility to completethe call.

Methods of Programming

Although various methods of `remotely programmable call forwarding` havebeen attempted in the prior art, these have proven to have limitedwidespread appeal due to the complicated and inflexible methods by whichthe users were required to program the systems. By contrast, the accesscontrol system employs a variety of different methods to allow thesubscriber to easily and effectively program the operation of theTelephone Control System. Following are several illustrative examples ofthe various methods a subscriber may employ to program the TelephoneControl System 1.

Command Mode

To use the Command Mode method of programming, the subscriber simplydials his own access number from any telephone, and enters his PIN code.The PSTN 2 delivers the call to the Telephone Control System 1 viafacilities 3. The Telephone Control System 1 then informs the caller ofthe current feature which is selected, and then provides the subscriberwith a simple menu of options by which he can choose a new feature. Forexample, in response to the entry of the PIN code, the subscriber may beprompted: "Hello Mr. Jones. Your calls are currently being VIP codescreened to your office. Touch 1 to check messages, 2 to change yourforwarding number, 3 to select a memory, 8 for advanced features, 9 tomake a call, or touch 0 for help." The subscriber may then make hisdesired selection. Please note that although the preferred embodimentherein discusses the use of touch tone as the signalling method by whichthe subscriber controls the Command Mode of the access control system,the inventors anticipate that other signalling methods may also beemployed, including, but not limited to, rotary dial pulse detection andvoice recognition.

Another feature of the Telephone Control System Command Mode allows thesubscriber to program `mode memories` which contain the most often usedcall handling methods for that subscriber. For example, a subscriber mayprogram memory 10 to be announced forwarding to his office, memory 20 tobe voice screened forwarding to his home, memory 30 to be message centermode, and so forth.

Weekly Schedule

Subscribers who have some routine to their weekly activities may soongrow weary of constantly calling the Telephone Control System andselecting the same call handling methods at the same time, day afterday. For this reason, the weekly schedule feature provides a very realbenefit to the subscriber. As an example, let us assume that asubscriber, Mr. Jones, starts work at 8:00 AM every morning, and leavesfor home at 5:00 PM in the evening. Let us further assume that he takesan hour for lunch from 12:00 to 1:00 PM each day. The weekly schedulefor this subscriber might be pre-programmed into the Telephone ControlSystem's database to be:

    ______________________________________                                        DAY    TIME      MODE MEMORY  FEATURE                                         ______________________________________                                        Mon-Fri                                                                              7:30 am   30           Message Center                                  Mon-Fri                                                                              8:00 am   10           Announced forwarding                                                          to office                                       Mon-Fri                                                                              12:00 noon                                                                              30           Message center                                  Mon-Fri                                                                              1:00 pm   10           Announced forwarding                                                          to office                                       Mon-Fri                                                                              5:00 pm   20           Voice screen                                                                  forwarding to home                              ______________________________________                                    

As calls are received by the Telephone Control System for thissubscriber, the Telephone Control System 1 refers to this database anddetermines the correct call handling method for the day of week and timeof day, and delivers the call accordingly.

Another feature of the weekly schedule allows the subscriber to overridethe weekly schedule should his schedule deviate from the preprogrammedsequence. In this way the subscriber can move freely about his routineactivites, and only he needs to program the access control system shouldhis schedule change from the normal.

Feature Timer

To illustrate the use of the Feature Timer capability of the TelephoneControl System, assume that a subscriber is visiting a client's officefor a one hour appointment, and wishes to have his calls forwarded tohim at this location during that time. He may use the Command Mode asdescribed above to select announced forwarding mode and change theforwarding number to be the telephone number of his client's phone. Whenhe leaves he intends to change the the call handling mode back to hismessage center. However, if the subscriber forgets to call the TelephoneControl System as he is leaving the client's office, then the client maystill continue to receive calls intended for the subscriber. To overcomethis problem, the subscriber may have instead used the Feature Timerfunction when he first called the access control system when he got tothe client's office. In this example, the subscriber could have calledthe access control system, and used Command Mode to select announcedforwarding to his client's office. However, instead of hanging up atthat point, he could have activated the Feature Timer, programming it tomaintain the current mode for one hour and then automatically change thecall handling mode to message center mode. In this way, the subscriberwould not have to remember to call the Telephone Control System as heleaves the client's office, and the client would not be bothered withthe subscriber's calls after he left.

Programming a Forwarding Number Using ANI

One difficulty in prior art implementations of remotely programmablecall forwarding devices, is that it takes quite a few digits for theuser to call the system, enter an access code, and then enter theforwarding number. One means by which the invention described hereinovercomes this difficulty is by employing special trunks which providethe called party number, also referred to as ANI. To see how thisimproves the ease of programming, consider the following example. Assumethat the subscriber is visiting factory 21, and that this is a locationthat he does not visit regularly, and therefore does not have it'stelephone number preprogrammed into the Telephone Control System 1.Further assume, as was discussed earlier, that the access control system1 is connected to the PSTN with Feature Group D trunks 8 which provideANI, and which can be reached by dialing an 800 number. To cause hiscalls to get to him at the factory 21, the subscriber in this examplewould pick up telephone 22 and dial the 800 number which corresponds tothe Feature Group D trunk. The PSTN 2 would deliver the call to theTelephone Control System 1 and the Telephone Control System 1 wouldreceive the ANI information digits containing the telephone number oftelephone 22. The subscriber then need only enter his PIN code and thecall handling feature memory he wishes to use, which might be memory 40,announced forwarding. The subscriber could then hang up and theTelephone Control System 1 would program the database to send all callsfor that subscriber to telephone 22 via announced forwarding. As shouldbe obvious, the sequence of digits entered by the subscriber was shorterthan if he had to actually enter the phone number. It should also bepointed out that another advantage of this method of programming is thatthe same sequence of digits is used to program the system each time. Inother words, if the subscriber went to another location and wanted hiscalls to be sent to him via announced forwarding, he could pick up aphone and dial the exact same sequence of digits as was described above.This makes the programming of the Telephone Control System lessdemanding on the subscriber since he only has to memorize one sequenceto accomplish this function. It is also anticipated by the inventorsthat a subscriber to this service may employ a `pocket dialer`preprogrammed with this fixed digit sequence, thereby even furthersimplifying the ease of programming.

Programming the Telephone Control System using Speed Calling and ANI

A well known service offered by many telephone companies is `SpeedCalling`. This service allows users to preprogram often used telephonenumbers into memories which can be recalled by dialing a one, two, orthree digit code. To see how subscribers can use this service to improvethe ease of programming the Telephone Control System, consider thefollowing example. Assume that an Telephone Control System-subscriber,who lives at home 15, has preprogrammed the access control system withhis home phone number 16. Let us further assume, as was discussedearlier, that the Telephone Control System 1 is connected to the PSTN 2with Feature Group D trunks 8 which provide ANI, and which can bereached by dialing an 800 number, and assume further that an entire800-NNX has been dedicated to this trunk group, in this example800-999-XXXX. By this invention, the last four digits of the 800 numberwill be used to signify the mode memory which is being selected. In thisexample, also assume that the subscriber has preprogrammed his telcospeed dialing feature so that the sequence 2# causes the telephonenumber 1-800-999-0010 to be dialed, and that the sequence 3# causes thetelephone number 1-800-999-0011 to be dialed. In this example, when thesubscriber picks up telephone 16 and dials 2#, the speed dialing featurewill cause the number 1-800-999-0010 to be dialed. The PSTN 2 willdeliver the call to the access control system 1 via Feature Group Dtrunks 8. The access control system 1 will receive the ANI digits, andreferring to it's database recognize the call as originating at the hometelephone of one of it's subscribers. It then will invoke thepreprogrammed mode memory 10 for that subscriber, which in this examplemight be voice-screened forwarding to his home phone. As a furtherexample, if the subscriber had dialed 3#, the Telephone Control System 1would have invoked memory 11 for that subscriber.

Communicator

As described earlier, the Communicator is a portable device carried onthe subscriber's person. This example demonstrates some of the ways bywhich the Communicator can simplify the call handling and programmingoperations for the Telephone Control System subscriber. Still referringto FIG. 1, assume that the subscriber is carrying a communicator 11 onhis belt, and that he has just entered room 13. Also assume that he hasselected the `automatic phone number` mode of operation for theCommunicator 11. When he enters the room, the Communicator 11 detects asignal from the fixed ultrasonic transmitter 12 located near theceiling. This signal is decoded by the Communicator 11 and is determinedto contain a phone number, which in this example happens to correspondto the phone instrument 14 located in the same room 13. Upon receipt ofthe ultrasonic signal, the Communicator 11 transmits a brief packetmessage via radio frequency. This message contains the subscriber'saccess number and the phone number just received form the ultrasonictransmitter 12. This radio frequency message is detected by packet radiotransceiver 9 and passed on to the access control system 1 via data link10. The Telephone Control System 1 then changes the forwarding numberfor this subscriber to be the new number.

Assume now that a caller at phone 26 wishes to speak to this subscriber.The caller dials the access number for the subscriber, and the PSTNdelivers the call to the access control system 1 via facilities 3. Uponreceiving the DID digits for this subscriber, the Telephone ControlSystem 1 determines that calls for this subscriber are to be handled via`direct forwarding` mode, and that the call is to be forwarded to thesubscriber at telephone 14. The access control system 1 then sends apage message to the packet radio transceiver 9 via data-link 10. Thepacket radio transceiver 9 in turn transmits a radio frequency packetmessage to Communicator 11, causing the beeper in the Communicator 11 toalert the subscriber to the incoming call. The Communicator 11 may alsothen send an acknowledgment message back via radio frequency to thepacket radio transceiver 9. Meanwhile, the Telephone Control System 1has begun to dial the phone number for phone 14 on an outgoing facility3, and instructs the switch 4 to connect the incoming facility to theoutgoing facility to complete the call. The PSTN 2 then delivers thecall to phone 14, causing it to ring, and the subscriber may pick up thephone and connect to the caller. Continuing the illustrative example,assume that the subscriber completes the call and leaves the room 13.Communicator 11 detects the loss of signal from ultrasonic transmitter12, and realizes therefore that the subscriber has left the room and isno longer able to receive calls at this location. The Communicator 11then transmits a brief packet message via radio frequency. This messagecontains the subscriber's access number and a special message indicatingthat no phone number is available and that a default mode memory is tobe used for call handling. This radio frequency message is detected bypacket radio transceiver 9 and passed on to the Telephone Control System1 via data link 10. The Telephone Control System 1 then changes themethod of call handling for this subscriber to the default mode, whichmay typically be message center mode. It should be obvious now that ifthe subscriber were to reenter room 13, or to enter another room with asimilar ultrasonic transmitter, that a similar sequence of events wouldoccur causing the calls for this subscriber to be routed to theappropriate room. In this way, without any specific action or effort onthe part of the subscriber, his calls will follow him from location tolocation and be handled automatically and properly.

Another feature of the Communicator allows the subscriber to enter a`manual phone number` mode whereby the Communicator will ignore themessages received from the ultrasonic transmitters, maintaining the lastused mode or forwarding number.

Another feature of the Communicator allows the subscriber to select anew method of call-handling by touching keys on the Communicator'skeypad. This will cause the Communicator 11 to transmit a `new modememory request` packet message via radio frequency to the packet radiotransceiver, which in turn will send the message to Telephone ControlSystem 1 via data-link 10, causing the Telephone Control System 1 tochange the call handling method for that subscriber.

DETAILED DESCRIPTION

FIG. 2 is a block diagram of the telephone control system 1. Thepreferred embodiment of the telephone control system 1 consists of avariety of subsystems, or facilities. A Call Processing Facility (CPF)100 is shown connected to trunks 3. A Pager Dialing Facility (PDF) 105is shown connected to telephone lines 5. A Subscriber Access Facility(SAF) 110 is shown connected to trunks 8. A Meet-Me Facility (MMF) 115is shown connected to lines 120. A Communicator Access Facility (CAF)125 is shown connected to datalink 10. A Client Services Facility (CSF)130 is also shown. Each of these facilities is connected to high speeddata network 150.

A block diagram of the Communicator 11 is shown in FIG. 3. The operationof the Communicator 11 is controlled by microprocessor 200, which in thepreferred embodiment is a single chip microprocessor containing it's ownRead-Only-Memory (ROM) and Random-Access-Memory (RAM). A keypad 205, anddisplay 210 are shown connected to microprocessor 10. A transmit dataoutput port 215 is provided by the microprocessor 200. This transmitdata is passed to packet data encoder 220 which formats the data intopackets before sending the packets to antenna 230 via radio frequencytransmitter 225. Radio frequency receiver 235 receives data packets fromantenna 230 and passes them to packet data decoder 240, which removesthe packet format and passes the raw received data to the receive datainput port 245 on microprocessor 200. Output port 250 may be used toapply a tone signal to beeper driver 255 which supplies sufficientcurrent to drive beeper 260 to produce an alerting sound. A transducer265, capable of receiving signals in the ultrasonic frequency range,passes these signals to a 40 Kilohertz filter and amplifier 270. Theresulting signal is applied to detector 275 which removes the 40Kilohertz component from the signal and passes the resulting serial datato input port 280 of microprocessor 200. Also shown is a crystaloscillator 285 which controls the timing of all operations of themicroprocessor 200. Power for the Communicator 11 is supplied by battery290. Improvements that currently exist in the ART may be made to theultrasonic transmitter and detector to enhance its ability tocommunicate the ultrasonic data in the presence of multi-path echoes.These improvements include, but are not limited to: frequency shiftkeying; the transmission of synchronized data and the use of a clockrecovery logic to extract the clock timing over a long integrationperiod resulting in a clock move resistant to echoes; the use of errordetecting and correcting codes; and the use of sampling and votingtechniques to determine the correct bit value after multiple samplesduring a bit period, the bit period being determined by the clockrecovery logic above. In addition, multiple transmitters may be used asa method of obtaining increased coverage and area transmissiondiversity.

A block diagram of the Ultrasonic Transmitter 12 is illustrated in FIG.4. Oscillator 300 provides a 40 Kilohertz signal to one input of ANDgate 305. The output of crystal oscillator 310 is applied to divider 311which produces a 75 Hertz signal to the clock input of 6-bit counter315. The 6 outputs of counter 315 are applied to the address inputs ofRead-Only-Memory 320. Memory 320 is pre-programmed with datarepresenting the phone number of the nearest telephone. This data maycontain the area code plus seven digits and the extension number ifappropriate. With each digit represented by 4 bits, 14 digits and 8 bitsof checksum may be transmitted. Only the least significant bits in ROM320 need be programmed, as the LSB output 325 is used to apply this datato a second input of AND gate 305. As can be seen, the serial data at325 will continuously output the phone number at a rate of 75 bits persecond. AND gate 305 combines the serial data 325 and the 40 Kilohertzsignal from oscillator 300 producing a resultant signal which is appliedto transducer driver 330. The output of driver 330 is then applied totransducer 335. As should be obvious, the transducer will be generatinga 40 Kilohertz signal while the serial data output 325 is high, and willbe generating no signal while the serial data output 325 is low. Thedata is therefore modulated on the 40 Kilohertz carrier at a rate of 75baud. The 64 bits from the ROM 320 are thus transmitted in a period of0.853 seconds. This is adequate for the transmission of a phone numberand extension. Although this baud rate is relatively low; it has theadvantage of reducing the effect of multipath (reflections of theultrasonic signal arriving at the receiver at different times andphases), and thus improves the reliability of transmission as comparedwith higher baud rates.

A block diagram of the Call Processing Facility (CPF) 100 is shown inFIG. 5.

Referring to FIG. 5, CPF trunk interface 400 interfaces the CPF 100 withtrunk 3. As was discussed earlier, the preferred embodiment of thetelephone control system 1 employs a CENTREX DID trunk. In thisembodiment trunk 3 is provided via a 4-wire E&M trunk provisioned withTYPE I signalling, which is well known in the art. This type of trunkprovides a 2-wire balanced transmit audio connection, shown terminatedby line termination 405. This type of trunk also provides a 2-wirebalanced receive audio connection, shown terminated by line termination410. The E-Lead of trunk 3 is shown connected to the current limitingand overvoltage protection at reference 415. In a similar fashion, theM-Lead of trunk 3 is shown connected to the current limiting andovervoltage protection at reference 420. 2-to-4 wire convertor 425 takesthe separate balanced transmit and receive signals from line terminators405 and 410 and combines them into one single-ended signal at reference430, which is applied to call processor 435. The E-Lead signal fromlimiter/protector 415 is passed to current detector 440. As is shown,current detector 440 provides a path for the E-Lead signal through tothe negative battery reference of -48 volts at 445. Current Detector 440also provides an "E-Lead Detect" logic signal indicating the presence ofcurrent via the E-lead. This signal is applied to E&M lead controlcircuit 450. The M-Lead signal for limiter/protector 420 is passed toM-Lead relay 455. This relay is controlled by a "M-Lead Control" signalfrom control circuit 450. By activating or deactivating relay 455,control circuit 450 is able to take the M-Lead on-hook or off-hook, asthe M-Lead will be connected either to -48 volts or to ground. Thecontrol circuit 450 outputs an "Incoming Call" signal 470 to buffer 460,and outputs a "Loop Status" signal 475 to call processor 435. Thecontrol circuit 450 has as additional inputs a "DID Received" signal 480from latch 465, and an "On/Off-Hook Control" signal 485 from callprocessor 435. The output of buffer 460, and the input of latch 465 isapplied to CPF internal data bus 490.

Still referring to FIG. 5, the CPF internal data bus 490 connects CPFtrunk interface 400, call processor 435, precision busy/ring detector437, Central Processing Unit (CPU) 495, Random Access Memory (RAM) 500,Disk memory 505, and data network interface 510. Call processor 435performs the functions of voice record and playback,dual-tone-multi-frequency (DTMF) detection and generation, and callcontrol. The functions of call processor 435 are well known in the artand many products, such as the Model D41B manufactured by DialogicCorporation, exist commercially which can accomplish these functions. Avoice recognition module 436 is shown connected to call processor 435.Voice recognition module 436 allows call processor 435 to detect, on aspeaker-independent basis, a simple set of spoken commands from callers.The simple set consists of 16 words including the digits `0` through`9`. This capability, in combination with the DTMF detection capabilityof the call processor 435, allows caller to either speak their commands,or enter them from a DTMF phone. A commercially available product whichperforms this voice recognition function is the Model VR/10 manufacturedby Dialogic Corporation.

A precision busy/ring detector 437 is shown connected to the audiosignal 430 from CPF trunk interface 400. This detector may be used toperform a rapid detection of precise busy and precise ringing signals,even in the presence of voice. Unlike the busy and ring detectionfunctions of Call Processor 435 which require a cadence match as well asa frequency match, precision busy/ring detector 437 does not require acadence match and is therefore capable of rapidly detecting precise busyand ringing signals even if a party is conferenced in and speaking onthe line. This capability is useful in providing the `busy/no-answeroption` as will be described later. The functions of precise busy/ringdetector 437 are well known in the art, and may be typically implementedas follows. The incoming audio signal is applied to the inputs ofseveral identical circuits, each with center frequencies set to detect adifferent component of the expected busy or ringing signal. Each ofthese circuits contains a low Q bandpass filter. This filter preventsout-of-band signals such as voice from interfering with the detectionfunction. The output of the bandpass filter is fed to a zero crossingdetector. The output of the zero crossing detector is then fed to a highQ bandpass filter again set at the frequency to be detected. The outputof the bandpass filter is then sent to a level detector which provides apositive indication if the incoming signal is above a preset amplitude.The output of the busy/ring detector 437 may be read by CPU 495 via theCPF internal data bus 490.

CPU 495 controls all functions of CPF 100. The software program whichthe CPU 100 uses is loaded into RAM 500, from disk memory 505. The disk505 also is used to store a variety of other data including thesubscriber database for the telephone control system 1. A data networkinterface 510 is used to connect the CPF 100 to the other subsystems ofthe telephone control system 1. Data network interface 510 passes datamessages between the CPU 495 and these other subsystems. The functionsof data network interface 510 are well known in the art, and manyproducts, such as the Model COM4i from Digiboard Corporation, existcommercially which can accomplish these functions. Although only onetrunk interface 400, one trunk 3, and one call processor 435 are shownin FIG. 5, it should be readily evident to one skilled in the art thatadditional trunk interfaces and call processors may be added to supportadditional trunks.

A flowchart of the operation of E&M control circuit 450 is shown in FIG.6. At reference 600, the control circuit 450 idles waiting for anindication from current detector 440 that the E-Lead has gone off-hook.When the E-Lead does go off-hook, as shown at reference 605, an"Incoming Call" signal is sent to CPU 495 via buffer 460. The controlcircuit 450 then idles at 610, waiting for an off-hook signal from callprocessor 435, signifying that the CPU 495 is ready to accept the call.When the off-hook signal is received, the "Loop Status" 475 is setactive as shown at reference 615. The M-Lead is then winked by takingM-Lead relay 455 momentarily off-hook, as shown at reference 620. Thecontrol circuit 450 then idles again at 625, waiting for the receipt ofthe "DID Received" signal 480 from CPU 495 via latch 465. Call processor435 detects the incoming DID digits on it's audio line 430 and decodesthe digits passing the digit sequence on to CPU 495. This DID digitsequence represents the `called number` or ACCESS NUMBER of a subscriberto the telephone control system 1. When the CPU 495 receives the DIDdigits from call processor 435, the CPU 495 sets the "DID Received"signal 480 active, and the control circuit 450 takes the M-Lead off-hookas shown at reference 630. At this point a call has been established,and the control circuit 450 must now wait until either CPU 495terminates the call, as signified by on/off-hook control signal 485going on-hook, or by the calling party terminating the call as signifiedby the E-Lead detect from current detector 440 going on-hook. Thesefunctions are accomplished by control circuit 450 as illustrated atreferences 635 through 670. At 635 a check is made to determine ifon/off-hook control signal 485 is on-hook. If it is still off-hook thena check is made at 640 to determine if the E-lead detect signal ison-hook. If it is on-hook, then the calling party has hung up, and thecontrol circuit 450 sets the "Loop Status" 475 inactive at 645,signalling the call processor 435 that the call is terminated. The callprocessor 435 may in turn signal CPU 495 that the call is terminated.Control circuit 450 then waits as shown at reference 650 for the "DIDReceived" signal 480 to become inactive, signifying that the CPU 495 iscompleted with the call and is ready to accept a new call.

When the "DID Received" signal 480 goes inactive, control passes to step675 where the M-Lead is placed on hook. Control then returns to step 600where the control circuit 450 restarts it's sequence at reference 600.Returning again to reference 635, if the On/off-hook control signal 485were found to be on-hook, then a 1.5 second timer is started as shown atreference 655. This timer is used to distinguish between a `hookflash`signal, which is typically less than 1.5 seconds, and an on hook commandwhich should be at least 1.5 seconds. At 660, the control circuit 450causes the M-Lead relay 455 to place the M-Lead on-hook. At 665 a checkis made to determine if the 1.5 second timer has expired. If it hasexpired, then the signal was a true on-hook command, and control passesto reference 645 for the termination of the call. If at 665 it isdetermined that the 1.5 second timer has not expired, then a check ismade at 670 to determine if the on/off-hook control 485 is stillon-hook. If it is still on-hook then the timer is tested again at 665.If the on/off-hook control 485 is off-hook again, then the command was aflash, and control returns to reference 630, where the M-Lead is takenoff-hook once more.

A diagram of the Subscriber Master Record, reference 700, is illustratedin FIG. 7. The subscriber master record contains information regarding agiven subscriber's chosen method of call handling. This information isused by the Telephone Control System 1 to determine how to process thecall. One unique subscriber master record exists for each subscriber tothe Telephone Control System 1. All subscriber master records are storedin disk 505 and, upon initialization of the Telephone Control System 1,are copied to a common database in RAM memory 500 by CPU 495. Thisfacilitates fast retrieval of this information, which is necessary forthe real-time processing of calls to the access control system 1.

Still referring to FIG. 7, the subscriber master record 700 contains asit's first element an access (DID) number, shown at reference 701. Asdescribed earlier, this access number 701 is the unique phone numberwhich is used to reach a given subscriber via the Public SwitchedTelephone Network 2. A PIN code, which is used by the subscriber toidentify himself to the Telephone Control System 1, is shown at 702. At703, a call handling mode is shown. The call handling mode defines thebasic method of call handling which has been chosen by the subscriber.Possible call handling modes include direct forwarding, announcedforwarding, message center, voice screen forwarding, urgent screenforwarding, VIP code screen forwarding, and branch-routing. At 704, astandard greeting type is shown. The standard greeting type, 704,defines the courtesy greeting announcement which the subscriber hasselected for the Telephone Control System 1 to use when first answeringa call. At 705, an options field is shown. This options field is used tocontain several miscellaneous option flags which may be used to modifythe operation of the basic call handling mode. Options 705 include `pageoption` which causes a page to be sent when a call is forwarded, an`emergency/urgent` option which modifies the operation of the priorityor urgent screen forwarding mode, a `busy/no-answer` option which causescalls to be sent to the message center if a busy or no-answer conditionis detected, and a voice screen hold off option which modifies theoperation of the voice screen forwarding mode. A transfer message typeis shown at reference 706. The transfer message type, 706, defines thecourtesy announcement which the subscriber has selected for the accesscontrol system 1 to use as a call is being transferred. A transfernumber is shown at 707. This is the number which the access controlsystem 1 will use when forwarding, or transferring calls for thissubscriber. At 708 an extension number is shown which may be used by theTelephone Control System 1 to announce to a caller the extension numberof the phone at which the subscriber is located. The subscriber'smessage center number is shown stored at 709. The subscriber's pagernumber is shown stored at 710. The subscriber's office number is shownstored at 711. The subscriber's home number is shown stored at 712. Thesubscriber's mobile phone number is shown stored at 713. At 714 a VIPscreen code is shown. The VIP screen code is a code which may be used bya caller to cause his call to be forwarded to the subscriber, when thesubscriber has selected VIP code screened forwarding mode. The number ofthe current feature memory which is being used is shown stored at 715.At 716 a pager message display number is shown. This is the number whichthe subscriber wishes to appear in the display of his pager when theaccess control system 1 has taken a message from a caller. At 717 apager forwarding display number is shown. This is the number which thesubscriber wishes to appear in the display of his pager when theTelephone Control System 1 is in the process of forwarding a call to thesubscriber. At 718 a communicator dynamic mode display number is shown.This is the number which the subscriber wishes to appear in the displayof his communicator 11 when the Telephone Control System 1 has a callholding, and requires that the subscriber select a method of callhandling to dispose of the call. The time and date that the last callerabandoned a meet-me call by hanging up without leaving a message isshown stored at 719. The time and date that the last caller abandoned ameet-me call by leaving a message is shown stored at 720. A count of thenumber of calls which have been transferred to an external messagecenter by the Telephone Control System 1 is shown stored at 721. Showngenerally at 722 are the branch routing numbers 0 through 9. Thesefields contain the phone numbers to which a call should be transferredif a caller touches one of the digits 0 to 9 when the access controlsystem 1 is processing a call using branch-routing mode. Thebranch-routing default transfer number is shown stored at 723. This isthe number to which the call is transferred should a caller not enterone of the digits 0 to 9. Shown stored at 724 is the feature timerduration. This value determines when the feature timer expires. Shownstored at 725 is the feature timer termination mode. This field containsthe mode memory which the subscriber wishes to use upon expiration ofthe feature timer. The fields necessary to implement the weekly schedulefunction are shown generally at reference 726. In the preferredembodiment the weekly schedule may contain up to 32 events (steps). Foreach step, the subscriber master record 700 stores a time and date, anda mode memory number to be used at that time and date. The current stepnumber (1 to 32) is shown stored at 727. A flag which indicates toTelephone Control System 1 that the weekly schedule is on, is shownstored at 728. A flag which informs the Telephone Control System 1 as towhether the subscriber is allowed to make multiple outside calls isshown stored at 729. A flag indicating that the subscriber has selectedto use his communicator 11 in the `dynamic mode assignment` mode isshown stored at 730. A count of the number of calls made to this ACCESSNUMBER is shown stored at 731.

A diagram of a Mode Memory, reference 800, is illustrated in FIG. 8. Asdescribed previously, the mode memories are used by subscribers of theTelephone Control System 1 to store their commonly used call handlingmodes and options. As with the subscriber master records 700, the modememories 800 are stored in disk 505 and, upon initialization of theTelephone Control System 1, are copied to a common database in RAMmemory 500 by CPU 495. Each mode memory is unique to an individualsubscriber, and is identified by storing the subscriber's ACCESS NUMBERas part of the mode memory, as shown at reference 801. In the preferredembodiment, the subscriber may have up to 90 mode memories. Each modememory is identified by a unique mode memory number, 10 through 99. Thismode memory number is shown stored as part of the mode memory 800 atreference 802. Shown generally at reference 803, are the various fieldswhich the subscriber has selected to store in the mode memory 800. Ascan be seen, these are a subset of the fields which are stored in thesubscriber master record 700. To invoke a mode memory, the TelephoneControl System 1 need only copy the fields from the mode memory 800 tothe corresponding fields in the subscriber master record 700. The accesscontrol system 1 also copies the mode memory number 802 to the currentfeature memory field 715 of the subscriber master record 700.

A flowchart of the Main Task for the Call Processing Facility (CPF) 100is shown in FIG. 9. This flowchart represents the instructions, orsteps, followed by CPU 495, as it controls functions of CPF 100. Thestarting point for the CPF--MAIN TASK is shown at reference 900. At step901 the CPU 495 performs initialization processes. These processes arewell known in the art and include such activities as using a boot PROMto load the operational program from disk, checking for memory errors,performing hardware diagnostics, etc. The subscriber master records 700are read from disk 505 and copied to a database in memory 500, as shownat step 902. In a similar manner, the mode memories 800 are read fromdisk and copied to a database in memory, as shown at step 903. At step904, the multitasking processes are established. The multitasking allowsthe software to perform more than one process simultaneously.Multitasking techniques are well known in the art. As an example, UNIXis a widely used multitasking operating system. Other well knowntechniques allow a pseudo-multitasking function to be accomplished on anon-UNIX based operating system by constructing a `round-robin`scheduler, by which a main process allocates `time slices` to each of anumber of sub-processes. At step 905 a process for the Network MessageTask is initialized, and at step 906 control is passed to theCPF--Network Message Task. At step 907 a process for the Call HandlerTask for the first trunk 3 is initialized, and at step 908 control ispassed to the CPF--Call Handler Task. In a similar fashion, at step 909a process for the Call Handler Task for the last trunk 3 is initialized,and at step 910 control is passed to the CPF--Call Handler Task. At step911 a process for the Call--Termination Task is initialized, and at step912 control is passed to the CPF--Call Termination Task.

A flowchart of the CPF--Network Message Task is illustrated in FIG. 10.The function of this task is to receive and process messages received byData Network Interface 510 from other facilities of the access controlsystem 1. The CPF--Network Message Task is entered at step 1000. At step1001 a determination is made as to whether a "request master record"message has been received. If this message has been received, then atstep 1002 the subscriber master record 700 which corresponds the DIDnumber, ANI number, or PIN code provided in the message is searched forin the database of memory 500. Upon finding this subscriber masterrecord, at step 1003 a message containing a copy of this subscribermaster record is sent back to the requesting facility via data networkinterface 510. Control then returns to step 1000. Should it bedetermined at step 1001, that no "request master record" message hasbeen received, then at step 1004 a check is made to determine if an"update master record" message has been received. If such a message hasbeen received, then at step 1005 a master record for a subscriber isrecovered from the message and copied to the the subscriber's masterrecord 700, at which point control returns to step 1000. If an "updatemaster record" message is not detected at step 1004, then at step 1006 acheck is made to determine if a "clear dynamic mode assignment flag"message has been received. If such a message has been received, and themessage identifies a specific subscriber DID number, then thedynamic-mode assignment flag 730 in the subscriber master record 700 forthis subscriber is cleared at step 1007, and control returns to step1000. If a "clear dynamic mode assignment flag" message is not detectedat step 1006, then at step 1008 a check is made to determine if a "setdynamic mode assignment flag" message has been received. If such amessage has been received, and the message identifies a specificsubscriber DID number, then the dynamic mode assignment flag 730 in thesubscriber master record 700 for this subscriber is set at step 1009,and control passes to step 1000. If a "set dynamic mode assignment flag"message is not detected at step 1008, then at step 1010 a check is madeto determine if "change to new mode memory" message has been received.If such a message has not been received, then control passes to step1014. If such a message has been received, and the message identifies aspecific subscriber DID number, then at step 1011 a check is made todetermine if the message was sent by the Communicator Access Facility(CAF) 125. If the message was not from the CAF 125, then control passesto step 1013. If the message was from the CAF 125, then at step 1012 anindication is sent to the CPF--Dynamic Mode Assignment routine (shown inFIG. 13), that this message was received, and control passes to step1013. At step 1013, the mode memory number and the subscriber's DIDnumber are removed from the message, and the corresponding mode memory800 is copied to the corresponding subscriber's subscriber master record700. Control then returns to step 1000. If at step 1010 it is determinedthat a `change to new mode memory message` is not received, then controlpasses to step 1014, where a determination is made as to whether a `modememory inquiry` message is received, and if this is the case thencontrol passes to step 1015 where the mode memory 800 identified in themessage for the subscriber identified in the message is retrieved fromthe database of memory 500 and a message is constructed and sent back tothe requesting facility via data network interface 510. Control thenreturns to step 1001. If at step 1014 it is determined that a `modememory inquiry` message is not received, then control passes to step1016, where a determination is made as to whether a `mode memory update`message is received, and if this is the case, then control passes tostep 1017 where the new mode memory contents are retrieved from themessage, and the mode memory is copied to the appropriate mode memory800 in the database of memory 500. Control then returns to step 1001. Ifat step 1016, it is determined that a `mode memory update` message isnot received, then control passes to step 1018 where a determination ismade as to whether a `create new subscriber`, message is received, andif this is the case then control passes to step 1019 where the DIDnumber is retrieved from the message, a subscriber master record 700 iscreated for this DID number 701, and a set of mode memories 800 arecreated for this DID number 701. Control then returns to step 1001. Ifat step 1018 it is determined that a `create master record` message isnot received, then control returns to step 1001.

A flowchart of the CPF--Call Termination Task is illustrated in FIG. 11.The purpose of this task is to monitor the loop status signal 475 foreach trunk interface 400, and to terminate any call in progress shouldthe loop status become inactive. In this way the system detects if thecalling party has hung up. The CPF--Call Termination Task is entered atstep 1100. At step 1101 a trunk pointer is set to a value of 1. At step1102 the loop status signal 475 for the trunk pointed to by the trunkpointer is read via call processor 435. At step 1103, a determination ismade as to whether the loop status signal 475 is active. If the signalis active, then control passes to step 1106. If the signal is notactive, then the caller must have hung up, and at step 1104 the trunk isplaced on hook by call processor 435 via on/off hook control signal 485.Then at step 1108 a determination is made as to whether this trunk wasprocessing the "CPF-Meet Me Caller" function, and if this is the casethen control passes to step 1109 where the current time and date isstored in the "last meet-me abandon" field 719 of the subscriber masterrecord 700. Control then passes to step 1105. Control also passes tostep 1105 if at step 1108 it is determined that the trunk was notprocessing the "CPF-Meet Me Caller" function. At step 1105 the CPU 495signals the multitasking process 907 controlling the call handler taskfor this trunk to return to it's entry point 908, thereby terminatingany activity on that trunk. Control then passes to step 1106, where acheck is made to determine if the trunk pointer is pointing to the lasttrunk. If the trunk pointer is pointing to the last trunk, then controlreturns to step 1101. If the trunk pointer is not pointing to the lasttrunk, then at step 1107 the trunk pointer is incremented and controlreturns to step 1102.

A flowchart of the CPF--Call Handler Task is illustrated in FIG. 12. Thefunction of this task is to respond to an incoming call on a trunk 3,receive the DID digits identifying the subscriber's ACCESS NUMBER beingdialed, determine the method of call handling as specified in thedatabase of memory 500 by subscriber master record 700 which correspondsto that ACCESS NUMBER, and then cause the call to be processedaccordingly. The CPF--Call Handler Task is entered at step 1200, aconnection point labelled "CPF IDLE" is passed at reference 1201, and atstep 1202 the DID received signal 480 is cleared, allowing trunkinterface 400 to receive a new call. Control then remains at step 1203until an incoming call signal 470 is received from the trunk interface400, at which point control passes to step 1204 causing the callprocessor to issue an off hook signal via it's on/off hook control line485. Then at step 1205, incoming DID digits are decoded and accepted bythe DTMF detector of call processor 435. Then at step 1206, after theDID digits have been received, the DID received signal 480 is set,causing E&M control circuit 450 to force the M-Lead active, therebyseizing the trunk. Control then passes through a connection pointlabelled "CPF VIRTUAL TRANSFER" at reference 1207. At step 1208 thesubscriber master record 700 which corresponds to the received DIDnumber is retrieved from the database of memory 500. At step 1209 thecall count 731 is incremented in the subscriber master record 700. Atstep 1210 a check is made to determine if the feature timer is active.This is accomplished by checking the feature timer duration 724. Thefeature timer is active if the feature timer duration 724 is non zero.If the feature timer is not active, then control passes to step 1213. Ifthe feature is active, then another check is made at step 1211 todetermine if the feature timer has expired since the last call. This isdetermined by comparing the feature timer duration 724 with the currenttime and date maintained by CPU 495. The feature timer has expired ifthe feature timer duration 724 does not extend beyond the current timeand date. If the feature timer has not expired, then control passes tostep 1213. If the feature timer has expired, then at step 1212 the modememory 800 specified by the feature timer termination mode 725 is copiedto the subscriber master record 800, and the feature timer duration 724is cleared to zero. Control then passes to step 1213. A determination ismade at step 1213 as to whether the weekly schedule is active bychecking the status of the weekly schedule active flag 728. If theweekly schedule is not active, then control passes to step 1217. If theweekly schedule is active, then a determination is made a step 1214 asto whether the current step of the weekly schedule is correct. This isaccomplished by finding the current step of weekly schedule 726 aspointed to by the weekly schedule current step 727, and comparing thetime and date of the next step with the current time and date. If thecurrent time and date fall between the current step and the next step,then the current step is correct. If, by this process, it is determinedthat the current step is correct, then control passes to step 1217.Otherwise, at step 1215, the weekly schedule current step 727 isincremented to point to the next step. Then at step 1216, the modememory number corresponding to the new step of the weekly schedule 726is found, the corresponding mode memory 800 is copied to the subscribermaster record 700, and then control passes to step 1217. At step 1217the status of the dynamic mode assignment flag 730 is checked, and if itis found to be active, control is passed at step 1218 to theCPF--Dynamic Mode Assignment. Otherwise, control passes through aconnector labelled "CPF MODE" at reference 1219, and then passes to step1220. At step 1220 a determination is made as to whether the currentcall handling mode 703 is set for `direct forwarding`, and if so controlis passed via step 1221 to the CPF--Direct Forwarding. Otherwise adetermination is made at step 1222 as to whether the current callhandling mode 703 is set for `announced forwarding` and if not controlpasses to step 1230. If the call handling mode 703 is set for `announcedforwarding`, then at step 1223 a further check is made to determine ifthe transfer number 707 is set for meet-me, and if not control passes tostep 1230. If the transfer number 707 is set for meet-me, then at step1224 one audible ring is played to the caller by call processor 435.Then at step 1225, the `pager display digits` are set to be equal to theDID number, prior to the "send page" subroutine being called at step1226. Upon receiving a page with his own DID number in the display, thesubscriber may recognize this as a meet-me call. Then a 4 second delayis initiated at step 1227, another ring is generated at step 1228, andanother 4 second delay is initiated at step 1229, before passing controlto step 1230. As can be seen, the effect of steps 1224 to 1229 is tosimulate the typical ringing cadence expected by a caller, and inaddition allow some time for the page sent at step 1225 to reach thesubscriber's pager. Because the caller must wait for the subscriber toget to a phone when the subscriber is using meet-me, the sequence ofsteps 1224 to 1229 has the effect of reducing the delay perceived by thecaller. At step 1230, an audible ring is generated towards the caller bycall processor 435. Then at step 1231 a determination is made as towhether the caller has entered the PIN code 702. If the PIN code hasbeen entered, then the caller must be the subscriber, and thereforecontrol passes to the CPF--Command Mode via step 1233. If the PIN codehas not been entered, then the control passes to step 1270 where adetermination is made as to whether the `message center access code` hasbeen entered by the caller. In the preferred embodiment the `messagecenter access code` consists of the digits "*9" and is the same for allsubscribers. This code may be used by callers who simply wish to leave amessage and do not need to speak with the subscriber. If the `messagecenter access code` has been entered by the caller, then control passesto the "CPF--Caller Message Center" function as shown at step 1271. Ifthe `message center access code` has not been entered, then controlpasses to connector label "CPF GREETINGS" as shown at reference 1232.

Still referring to FIG. 12, control passes through the connectorlabelled "CPF GREETING" at reference 1233 to step 1234, where adetermination is made as to whether the call handling mode 703 is setfor `branch-routing`, and if so control passes through a connectorlabelled "CPF PIN" at reference 1235. Otherwise, at step 1236 thestandard greeting type 704 is retrieved from the subscriber masterrecord 700. If the standard greeting type is `stock` as determined atstep 1237, then control passes to step 1238 where a stock genericgreeting is played to the caller: "Hello, you have reached your party'stelephone control system." Control then passes through a connectorlabelled "CPF PIN" at reference 1239. If the standard greeting type isnot determined to be `stock` at step 1237, then a further check is madeat step 1240 to determine if the standard greeting type is `drop-in`,and if not the control is passed to step 1245. If the standard greetingtype is `drop-in` then at step 1241 the subscriber's prerecorded drop-inname is retrieved from disk 505. Then at step 1242 the call processor435 plays the greeting: "Hello, you have reach the telephone controlsystem for . . . ", and then at step 1243 completes the greeting byplaying back the pre-recorded name of the subscriber retrieved form diskin step 1241. Control then passes through a connector labelled "CPF PIN"at 1244. As was described earlier, if the standard greeting type wasfound not to be `drop-in` at step 1240 then control passed to step 1245.At step 1245, a check is made to determine if the standard greeting typeis `personalized`, and if not control passes to step 1238, describedearlier. Otherwise, control passes to step 1246 where the subscriber'spre-recorded personalized greeting is retrieved from disk 505, and isthen played back to the caller at step 1247 by call processor 435.Control then passes through connector labelled "CPF PIN" at reference1248 and a check is made at step 1249 to determine if the caller hasentered a PIN code. If the PIN code has been entered, then the callermust be the subscriber, and therefore control passes to the CPF--CommandMode via step 1250. If the PIN code has not been entered, then thecontrol passes to step 1272 where a determination is made as to whetherthe `message center access code` has been entered by the caller. As wasdescribed earlier, in the preferred embodiment the `message centeraccess code` consists of the digits "*9" and is the same for allsubscribers. This code may be used by callers who simply wish to leave amessage and do not need to speak with the subscriber. If the `messagecenter access code` has been entered by the caller, then control passesto the "CPF--Caller Message Center" function as shown at step 1273. Ifthe `message center access code` has not been entered, then controlpasses to step 1251, where the call handling mode 703 is retrieved fromthe subscriber master record 700. Then at step 1252 a check is made todetermine if the call handling mode 703 is set for `announcedforwarding`, and if so a further check is made at step 1253 to determineif the transfer number 707 is set for meet-me. If the transfer number isnot set for meet-me then control passes to CPF--Announced Forwarding viastep 1254. If the transfer number is set for meet-me, then controlpasses to CPF--Meet-Me Caller via step 1255. If at step 1252 it wasdetermined that the call handling mode was not set for `announcedforwarding`, then control passes to step 1256. At step 1256 a check ismade to determine if the call handling mode 703 is set for `urgentscreen forwarding`, and if so control passes to CPF--Urgent Screen viastep 1257. Otherwise, at step 1258 a check is made to determine if thecall handling mode 703 is set for. `VIP code screen forwarding`, and ifso control passes to CPF--VIP Code Screen via step 1259. Otherwise, atstep 1260 a check is made to determine if the call handling mode 703 isset for `voice screen forwarding`, and if so control passes toCPF--Voice Screen via step 1261. Otherwise, at step 1262 a check is madeto determine if the call handling mode 703 is set for `branch-routing`,and if so control passes to CPF--Branch-Routing via step 1263. Otherwisecontrol passes to CPF--Message Center via step 1264.

A flowchart of the CPF--Dynamic Mode Assignment is illustrated in FIG.13. The purpose of this function is to process calls for a subscriberwho is using a Communicator 11, and who has selected the dynamic modeassignment mode of operation. The dynamic mode assignment mode ofoperation allows a subscriber to chose dynamically, with each incomingcall, the call handling mode to be used for the call. The subscriber isalerted via his Communicator 11 that an incoming call is present, andthe subscriber may then transmit a `new mode memory` message from hisCommunicator 11 thereby informing the Telephone Control System 1 as tohow the call should be handled. The CPF--Dynamic Mode Assignmentfunction is entered at step 1300, and at step 1301 the `pager displaydigits` are set equal to the communicator dynamic mode display number718. At step 1302, the `send page` subroutine is called, causing a pageto be sent to the subscriber's Communicator 11. At step 1303, a ringcount is set to a value of 4. At step 1304 an audible ring is played tothe caller by call processor 435, and at step 1313 a determination ismade as to whether the caller has entered the PIN code 702. If the PINcode has been entered, then the caller must be the subscriber, andtherefore control passes to the CPF--Command Mode via step 1314. If thePIN code has not been entered, then the control passes to step 1315where a determination is made as to whether the `message center accesscode` has been entered by the caller. As was described earlier, in thepreferred embodiment the `message center access code` consists of thedigits "*9" and is the same for all subscribers. This code may be usedby callers who simply wish to leave a message and do not need to speakwith the subscriber. If the `message center access code` has beenentered by the caller, then control passes to the "CPF--Caller MessageCenter" function as shown at step 1316. If the `message center accesscode` has not been entered, then at step 1305 a 4 second delay isinitiated, thus creating a typical ring cadence. At step 1306 a check ismade to determine if the Network Message Task (FIG. 10) has received a`new mode memory` message from the Communicator 11 belonging to thissubscriber. If such a message has been received, then the control passesto connector labelled "CPF MODE" as indicated at reference 1307. Ifmessage was not received, then the ring count is decremented at step1308, and at step 1309 a check is made to determine if the ring count is0. If the ring count is not `0`, then control returns to step 1304 andthe ring cycle is repeated. If the ring count is 0, indicating fourrings cycles have been generated without the subscriber responding, thencontrol passes to step 1310, labelled "CPF SORRY" by the connector atreference 1311, and the caller is informed, via call processor 435: "I'msorry, your party is not available at the moment. We will connect you toyour party's message center where you may leave a detailed message."Control then passes to CPF--Caller Message Center via step 1312.

A flowchart of the CPF--Direct Forwarding function is illustrated inFIG. 14. The purpose of this function is to process calls for asubscriber who has selected the `direct forwarding` call handling mode.In this mode, calls are transferred without any announcement. Lowamplitude `confidence tones` are generated just prior to the transfer sothat the subscriber may have an opportunity to enter his PIN Code. TheCPF--Direct Forwarding function is entered at step 1400, and `confidencetones` are generated at step 1401 by call processor 435. The `confidencetones` are a prerecorded sequence of tones which are designed to soundsimilar to the interoffice multifrequency signalling tones that callersare familiar with. In this way the caller has no clear indication thatthe call is being answered and transferred, and yet at the same time thesubscriber is given an indication as to when he may enter his PIN Code.At step 1402, a determination is made as to whether the subscriber hasentered his PIN code. If the PIN code has been entered, then controlpasses to CPF--Command Mode via step 1403. Otherwise control passes tostep 1416 where a determination is made as to whether the `messagecenter access code` has been entered by the caller. As was describedearlier, in the preferred embodiment the `message center access code`consists of the digits "*9" and is the same for all subscribers. Thiscode may be used by callers who simply wish to leave a message and donot need to speak with the subscriber. If the `message center accesscode` has been entered by the caller, then control passes to the"CPF--Caller Message Center" function as shown at step 1417. If the`message center access code` has not been entered, then control passesto a connector labelled "CPF DIAL TRANSFER" at reference 1404 to step1405, where a check is made to determine if the transfer number 707contains a reference to a reserved phone number (a tag) or a referenceto a mode memory. Tags may be used as follows:

    ______________________________________                                        TAG DIGIT      RESERVED PHONE NUMBER                                          ______________________________________                                        1              message center number 709                                      2              pager number 710                                               3              office number 711                                              4              home number 712                                                5              mobile phone number 713                                        6              meet-me tag                                                    7              'externally entered' number                                    ______________________________________                                    

As will be described in more detail later in this discussion, if a modememory 800 has a transfer number 707 that is an `externally entered`number tag, then when that mode memory is invoked, the transfer numberis not changed from the previous value. Also, if a mode memory whichcontains a transfer number 707 that is an `externally entered` numbertag can be invoked remotely by the subscriber via a Feature Group Dtrunk, causing the ANI number received by the trunk to be used as thetransfer number 707. The reference to the mode memory may be in the formof the two digit mode memory number 10-99. Therefore, at step 1405, ifthe transfer number 707 contains the digits 1 through 6, or the digits10 through 99, then control will pass to step 1406. Otherwise, controlwill pass to step 1409. At step 1406 a determination is made as towhether the transfer number 707 contains the meet-me tag (ie. digit 6).If the meet-me tag is found, then control passes to the CPF--Meet-MeCaller Function via step 1407. If the meet-me tag is not found at step1406, then control passes to step 1408, where the tag or mode memory isexpanded to a real phone number which can be dialed. If the transfernumber 707 contains a tag, then the corresponding reserved phone numberper the table above is used as the expanded number to be dialed. If thetransfer number 707 contained a mode memory number, then the transfernumber 707 from the corresponding mode memory 800 is used as theexpanded number to be dialed. Control then passes to step 1409, where adetermination is made as to whether the transfer number to be dialed canbe found as the ACCESS NUMBER 801 in any of the subscriber masterrecords 700. If so, then it is not necessary to do a physical transfer,and the call can be continued on the same trunk by passing controlthrough the connector labelled "CPF VIRTUAL TRANSFER" at reference 1410.Otherwise, at step 1411 a flash is generated by call processor 435 byproducing a 700 millisecond on hook signal on the on/off hook controlline 485. This flash places the calling party on hold and causes asecond dial tone to be returned on trunk 3 by the serving central officeof the PSTN 2. At step 1412 a brief pause is introduced to allow timefor the dial tone to appear on the trunk, and then at step 1413 thetransfer number is dialed via the DTMF generator of call processor 435.Then at step 1418 the `busy/no-answer` option flag of options 705 ofsubscriber master record 700 is checked. The function of this option isto handle calls which are being sent to a subscriber even if thesubscriber's line is busy or does not answer. If this option is activethen at step 1419 a flash is generated by call processor 435 causing thecalling party to be taken off hold and connected to the call beingplaced to the transfer number. The calling party will thus be able tohear the progress of the call and will therefore hear the subscriberanswer if the subscriber does indeed answer. At step 1420 adetermination is made as to whether the call was local or long distance.If the transfer number was longer than 7 digits, or if the 7 digitnumber contained a prefix which is long distance in this area, then thecall was long distance and a 40 second timer is started at step 1422. Ifthe transfer number was less than or equal to 7 digits, then the callwas local and a 25 second timer is started at step 1421. Then at step1423 a determination is made as to whether precision busy/ring detector437 is detecting busy signal, and if not control passes to step 1424. Ifa busy signal is detected at step 1423, indicating that the subscriber'sline is busy, then control passes to step 1429 where a flash isgenerated by call processor 435 causing the call attempt to be droppedbut leaving the calling party connected to the telephone controlsystem 1. Control then passes to a connector labelled "CPF--Sorry" asshown at step 1430, which causes the caller to be sent to thesubscriber's message center function. If at step 1423 a busy signal wasnot detected, then control passes to step 1424 where a determination ismade as to whether the timer has expired. If the timer has expired,indicating that neither busy or ringing where detected, then controlpasses to 1414. If at step 1424 it is determined that the timer has notexpired, then control passes to step 1425 where a determination is madeas to whether precision busy/ring detector 437 is detecting a firstringing signal, and if not control returns to step 1423. If the firstringing signal is detected at step 1426, then control passes to step1426, where a determination is made as to whether this is the fourthring signal, and if so, indicating that the subscriber is not answeringthe call, then control passes to step 1429 causing the caller to beultimately routed to the subscriber's message center function as wasdescribed earlier. If at step 1426 it is determined that this is not thefourth ring, then control passes to step 1427 where control idles untilan end-of-ring is detected by precision busy/ring detector 437. Controlthen passes to step 1428 where a 6 second `inter-ring timer` is started.Control then passes to step 1431 where a determination is made as towhether precision busy/ring detector 437 is detecting ringing signal andif so control returns to step 1426. If however at step 1431 it isdetermined that ringing signal is not being detected, then controlpasses to step 1432 where the `inter-ring timer` is checked. If the`inter-ring timer` has not expired then control returns to step 1431. Ifthe `inter-ring timer` has expired, indicating the subscriber hasanswered the call, then control passes to step 1414. At step 1414 an onhook signal is generated on the on/off hook control line 485, causingthe call to be transferred to the dialed number, and freing up the trunk3 to handle another incoming call. Control then passes to the connectorlabelled "CPF IDLE" at reference 1415.

A flowchart of the CPF--Announced Forwarding function is illustrated inFIG. 15. The purpose of this function is to process calls for asubscriber who has selected the `announced forwarding` call handlingmode. In this mode, callers are greeted with a brief courtesyannouncement prior to being transferred. In addition, if a `page option`has been selected, then a page is sent to the subscriber's pager priorto transferring the call. The CPF--Announced Forwarding function isentered at step 1500 and at step 1501, a determination is made as towhether the page flag of options 705 is set, and if it is not set, thencontrol passes to the connector labelled "CPF AF2" at reference 1502. Ifthe page flag is set, the control passes to step 1503 where the displaydigits are set equal to the pager forwarding display number 717. At step1504 the `send page` subroutine is called causing a page to be sent tothe subscriber's pager. Then at step 1505, the call processor 435 playsto the caller the message: "We are sending a page to inform your partyof your call. Please stay on the line." At step 1506 a delay isinitiated to allow the pager sufficient time to receive the page. Thenat step 1507, another message is played to the subscriber: "We have senta page to your party and we will connect your call momentarily. Pleasestay on the line." At step 1508 an additional delay is initiated toallow the subscriber the opportunity to get to a phone. Control thenpasses to the connector labelled "CPF AF2" at reference 1509. Theconnector labelled "CPF AF2" at reference 1510 passes control to step1511, where the transfer message type 706 is retrieved from subscribermaster record 700. Then at step 1512, a check is made as to whether thetransfer message type is `0`. If the transfer message type is `0`,indicating no transfer message is to be played, then control passes tothe connector labelled "CPF DIAL TRANSFER" at reference 1520. If thetransfer message type is not `0`, then control passes to step 1513 wherea check is made to determine if the transfer message type is `1`. If thetransfer message type is `1`, then at step 1514 the call processor 435plays to the caller the message: "We're connecting your call", and thencontrol passes to the connector labelled "CPF DIAL TRANSFER" atreference 1520. If the transfer message type is not `1`, then controlpasses to step 1515 where a check is made to determine if the transfermessage type is `2`. If the transfer message type is `2`, then at step1516 the call processor 435 plays to the caller the message: "We'reconnecting your call. When the call is answered, please ask for yourparty by name", and then control passes to the connector labelled "CPFDIAL TRANSFER" at reference 1520. If the transfer message type is not`2`, then control passes to step 1517 where a check is made to determineif the transfer message type is `3`. If the transfer message type is`3`, then at step 1518 the call processor 435 plays to the caller themessage: "We're connecting your call. When the call is answered, pleaseask for extension number . . . " Then at step 1519, the extension number708 is retrieved from the subscriber master record 700 and is voiced tothe caller by call processor 435. Control then passes to the connectorlabelled "CPF DIAL TRANSFER" at reference 1520.

A flowchart of the CPF--Urgent Screen function is illustrated in FIG.16. The purpose of this function is to process calls for a subscriberwho has selected the "priority screen" or `urgent screen` call handlingmode. The CPF--Priority/Urgent Screen function is entered at step 1600,and control passes to step 1601, where call processor 435 plays to thecaller the message: "Your party is not readily available at the moment.If this call is . . . " Control then passes to step 1602 where theurgent/emergency flag of the options 705 is checked. If the flag is setfor `urgent`, then the call processor 435 plays to the caller " . . .urgent . . . ", and if the flag is set for emergency then call processor435 plays to the caller " . . . an emergency . . . " Control then passesto step 1603 where the call processor completes the sentence by playingthe message " . . . then touch 0 now and we will attempt to connect yourcall. Otherwise, we will connect you to your party's message centerwhere you may leave a detailed message." Then at step 1604, a 5 secondtimer is started. At step 1605 a determination is made as to whether thecaller has touched 0. If the caller has touched 0, then control passesto the CPF--Announced Forwarding function via step 1606. If the callerhas not touched 0, then at step 1607 a determination is made as towhether the 5 second timer has expired. If the 5 second timer has notexpired then control returns to step 1605. If the 5 second timer hasexpired, then at step 1608 the caller is informed: "Please standby".Control then passes to the CPF--Caller Message Center function via step1609.

A flowchart of the CPF--VIP Code Screen function is illustrated in FIG.17. The purpose of this function is to process calls for a subscriberwho has selected the `VIP code screen` call handling mode. The CPF--VIPCode Screen function is entered at step 1700 and control is passed tostep 1701 where the call processor 435 plays to the caller the message:"Your party is not readily available at the moment. Please enter yourcode now, or we will connect you to your party's message center whereyou may leave a detailed message." Control then passes to step 1702where a 5 second timer is started. At step 1703 a determination is madeas to whether the caller has entered the VIP screen code 714 as storedin the subscriber master record 700. If the caller has entered thecorrect VIP screen code, then control passes to the CPF--AnnouncedForwarding function via step 1704. If the caller has not entered the VIPscreen code 714, then at step 1705 a determination is made as to whetherthe 5 second timer has expired. If the 5 second timer has not expiredthen control returns to step 1703. If the 5 second timer has expired,then at step 1706 the caller is informed: "Please standby". Control thenpasses to the CPF--Caller Message Center function via step 1707.

A flowchart of the CPF--Branch Routing function is illustrated in FIG.18. The purpose of this function is to process calls for a subscriberwho has selected the `branch-routing` call handling mode. TheCPF--Branch Routing function is entered at step 1800, and control passesto step 1801 where the prerecorded branch-routing greeting is retrievedfrom disk 505. Then at step 1802, the playback to the caller of thebranch-routing greeting is begun by call processor 435. At step 1803 adetermination is made as to whether the caller has entered a digit. Ifthe caller has not entered a digit then at step 1804 a determination ismade as to whether the call processor 435 has completed the playback ofthe branch-routing greeting, and if an additional 5 seconds haveexpired. If this is the case then control passes to step 1805. If thisis not the case, then control returns to step 1803. If at step 1803 itis determined that the caller has entered a digit, then control passesto step 1806 where a determination is made as to whether there exists abranch-routing number 722 in the subscriber master record 700 whichcorresponds to the digit entered by the caller. For example, if thesubscriber entered digit 4, then a determination is made as to whetherthe subscriber master record holds a phone number entry in the branchrouting number 4 position at 722. If an entry is found in such a manner,then control passes to step 1807. Otherwise, control passes to step 1805where a the branch routing default number 723 is retrieved for thesubscriber master record 700, and is set up to be used as the transfernumber for this call. Control then passes to the connector labelled "CPFDIAL TRANSFER" at reference 1808. Should the caller have entered a digitwhich corresponded to a branch routing number 722, then at step 1807 thecorresponding branch routing number 722 is retrieved form the subscribermaster record 700, and is setup to be used as the transfer number forthis call. Control then passes to the connector labelled "CPF DIALTRANSFER" at reference 1808.

A flowchart of the CPF--Caller Message Center function is illustrated inFIG. 19. The purpose of this function is to process calls for asubscriber who has selected the `message center` call handling mode. TheCPF--Caller Message Center function is entered at step 1900 and controlpasses to step 1901 where a determination is made as to whether anexternal message center has been selected. This determination is made byexamining the message center number 709 in the subscriber master record700. If the message center number 709 contains a phone number, thenexternal has been selected. If the message center number 709 does notcontain a phone number, then internal message center has been selected.The subscriber may chose an external voice mail system, an answeringservice, his secretary, or any other appropriate phone number for theexternal message center number 709. If, at step 1901, it is determinedthat the subscriber has selected the internal message center, thencontrol passes to step 1902, where the caller is prompted: "Please leaveyour message at the tone . . . BEEP." Then at step 1903 the callersmessage is recorded by call processor 435 and stored on disk 505. Atstep 1904 a determination is made as to whether the caller has completedleaving the message. This is accomplished by call processor 435determining if there has been at least 3 seconds of silence on the linesince the last sound. If the caller has not completed leaving a messagethen the recording continues at step 1903. If the caller has completedleaving a message, then control passes to step 1905, where the caller isprompted: "Thank you for calling. Good-bye." Then at step 1906 the trunkis placed on hook by call processor 435 via on/off hook control signal485. Control then passes to step 1907, where a decision is made as towhether a message was actually left. A message is determined to be leftif at least 3 seconds of non-silence has been recorded, as determined bycall processor 435. If a message was not left, then control passes toconnector labelled "CPF IDLE" at reference 1908. If a message was leftby the caller, then control passes to step 1909, where the `displaydigits` are set equal to the pager message center display number. The`send page` subroutine is then called at step 1910, and control passesto a connector labelled "CPF IDLE" at reference 1911. Returning now tostep 1901, if a determination is made, in the manner described above,that an external message center is selected, then control passes to step1912 where the party is informed by call processor 435: "Pleasestandby," then control passes to step 193 where a flash is generated bycall processor 435 by producing a 700 millisecond on hook signal on theon/off hook control line 485. This flash places the calling party onhold and causes a second dial tone to be returned on trunk 3 by theserving central office of the PSTN 2. At step 1914 a brief pause isintroduced to allow time for the dial tone to appear on the trunk, andthen at step 1915 the message center number 709 is dialed via the DTMFgenerator of call processor 435. The message center number may containspecial dialing characters, including characters for pausing, waitingfor tones, and waiting for answer. Thus a sequence of dialing charactersmay be constructed to allow the Telephone Control System 1 to transfercalls to a voice mail system requiring the entry of a subscriber ID. Forexample, an external message center dialing sequence for a typical voicemail system may be: 7 digit phone number of voice mail system +Wait foranswer +4 digit voice mail subscriber ID. Continuing now, at step 1916an on hook signal is generated on the on/off hook control line 485,causing the call to be transferred to the dialed number, and freeing upthe trunk 3 to handle another incoming call. Control then passes to step1917 where the `external message center count` 721 in the subscribermaster record 700 is incremented. Control then passes to steps 1909 and1910 where a page is generated as described above, before returningcontrol to the connector labelled "CPF IDLE" at reference 1911.

A flowchart of the CPF--Voice Screen function is illustrated in FIG. 20.The purpose of this function is to process calls for a subscriber whohas selected the `voice screen` call handling mode. The CPF--VoiceScreen function is entered at step 2000 and control passes to step 2001where the caller is prompted by call processor 435: "Please state yourname and business at the tone. After the tone please stay on the linewhile we attempt to locate your party and connect your call . . . BEEP."Control then passes to step 2090 where a determination is made as towhether the caller has entered the `VIP screen code` 714, and if socontrol passes to the "CPF--Announced Forwarding" function as shown atstep 2091. In this way, a caller who knows the `VIP screen code` is ableto be forwarded directly to the subscriber without being voice-screened.If, however, at step 2090 it is determined that the caller has notentered the `VIP screen code` 714 then control passes to step 2002 wherethe caller's message is recorded by call processor 435 and storedtemporarily on disk 505. At step 2003, the call processor 435 determinesthat the caller has completed stating his name and business, bydetecting the sound of the voice followed by approximately 3 seconds ofsilence, at which point the call processor 435 prompts the caller:"Thank you, please standby." A flash is generated at step 2004, causingthe caller to be placed on hold by the switch 4, and at step 2005 apause is initiated to allow time for the switch 4 to provide a dialtone, at which point the transfer number 707 is dialed by the DTMFgenerator of call processor 435. At step 2006, an `answer timer` isstarted. At step 2007 a determination is made by call processor 435 asto whether the call has been answered. If the call has not beenanswered, then at step 2008 a decision is made as to whether a time-outor non-answer signal such as a busy, reorder, or operator intercept hasbeen detected by call processor 435. If so, then control proceedsthrough a connector labelled "CPF VSCRN FLASH" at reference 2009, tostep 2010. Otherwise control returns to step 2207. At step 2010, a flashis generated, causing switch 4 to temporarily conference the callerthrough to the non-answer signal, and at step 2011 a 2 second pause isinvoked. Then at step 2012 another flash is generated causing switch 4to drop the conference and restore a simple 2-way connection between thecaller and the trunk 3. Control then passes to a connector labelled "CPFSORRY" at reference 2013, resulting in the caller being connected to thesubscriber's message center as described earlier in FIG. 13. Returningthe discussion now to step 2007, if a determination is made that thecall is answered, then control passes to step 2014 where the `voicescreen PIN code hold-off flag` of options 705 of the master record 700is checked. If this flag has been set, it means that the subscriberwishes to require that a PIN code be entered by the answering partybefore the called party's message is played. This is very useful if thesubscriber is having his calls voice-screen forwarded to his office, forexample, where the receptionist may answer the call. In this case thereceptionist would connect the call to the subscriber and the subscriberwould enter his PIN code to hear the calling party's message beforedetermining whether he wishes to be connected to the calling party. Ifthis flag is set, then control passes to step 2015, where call processor435 prompts the answering party: "We are trying to reach . . . ". Thenat step 2016, the subscriber's prerecorded `drop-in` name is retrievedfrom disk 505 and played back to the answering party. At step 2017, theanswering party is informed: "Please locate the party or enter your PINcode." Then at step 2018, a 5 second delay is introduced, and at step2019, a determination is made as to whether the answering party hasentered the PIN code 702. If the PIN code is entered, then controlpasses to step 2021. Otherwise, control passes to step 2020, where adetermination is made as to-whether the sequence of steps 2015 through2020 has been repeated ten times. If not, then control returns to step2015, and the sequence is repeated again. However, if this is the tenthrepeat, then control passes to the connector labelled "CPF VSCRN FLASH"at reference 2009, and the calling party is sent to the subscriber'smessage center as described earlier. If, at step 2014, it is determinedthat the `voice screen PIN code hold-off flag` is not set, or if it isset and the PIN code has been entered as determined at step 2019, thencontrol passes to step 2021, where the answering party is informed bycall processor 435: "We have a call holding for . . . ", and then tostep 2022 where the subscriber's `drop-in` name is retrieved from diskand played. Then at step 2023, which is identified by the connectorlabelled "CPF VSCRN LISTEN" at reference 2024, the caller's messagewhich was originally recorded at step 2002 is retrieved from disk 505and played by call processor 435 to the subscriber. Then at step 2025,which is identified by the connector labelled "CPF VSCRN MENU" atreference 2026, the subscriber is prompted: "Please touch 1 to connectthe call, 2 to send the caller to your message center, 3 to politelysend the caller away, 4 to listen to the caller's message again. 5 toplace the caller on hold for 1 minute, 6 to transfer the call elsewhere,or 7 to ask the caller not to call again." Control then passes through aconnector labelled "CPF VSCRN LOOP" at reference 2027. At reference2028, the connector labelled "CPF VSCRN LOOP" passes control to step2029 where a 10 second timer is started. Then at step 2030, adetermination is made as to whether a digit has been entered by thesubscriber, and if so control passes to step 2033. Otherwise, controlpasses to step 2031 where the 10 second timer is checked, and if it hasnot expired control returns to step 2030. If the timer has expired, thencontrol is passes to the connector labelled "CPF VSCRN FLASH" atreference 2032, and the caller is connected to the message center asdescribed earlier. If a digit has been entered by the subscriber, thenat step 2033, the digit is checked and if it is not `1`, control ispasses to step 2043. If the digit is `1`, then control passes to step2034, where a flash is generated causing the calling party and thesubscriber to be conferenced by switch 4. Then at step 2035 adetermination is made as to whether dial tone is present on the line. Ifso this would indicate that the conference failed, most likely becausethe calling party had hung up. If this is the case, then control passesto step 2039. Otherwise, if dial tone is not detected, then at step2036, both the calling party and the subscriber hear call processor 435play the prompt: "Go ahead please.", and at step 2037, the trunk 3 isplaced on hook causing the switch 4 to transfer the call allowing thecalling party and the subscriber to continue their conversation, whileat the same time freing up trunk 3 to handle another incoming call bypassing control back to the CPF--Call Handler Task via the connectorlabelled "CPF IDLE" at reference 2038. If the caller had hung up asdetermined by the detection of dial tone at step 2035, then at step 2039another flash is generated to cause switch 4 to take the subscriber offof hold. Then at step 2040, the subscriber is informed: "I'm sorry, yourparty has hung up", and at step 2041 trunk 3 is placed on hook andcontrol is returned to the CPF--Call Handler Task via the connectorlabelled "CPF IDLE" at reference 2042. If, as described earlier, at step2033 it is determined that the digit is not `1`, then control is passesto step 2043 where it is determined whether the digit is a `2`, and ifso control is passes to the connector labelled "CPF VSCRN FLASH" atreference 2044 causing the calling party to be connected to the messagecenter as was described earlier. If the digit is not `2`, then controlpasses to step 2045, where it is determined if the digit is a `3`, andif not control passes to step 2052. If the digit is a `3`, then controlpasses to step 2046, where a flash is generated causing switch 4 totemporarily conference the calling party and the subscriber. Then. aftera 2 second pause at step 2047, another flash is generated at step 2048causing switch 4 to terminate the conference by dropping the subscriber,leaving just the calling party connected to trunk 3. Then at step 2049,the calling party is informed by call processor 435: "I'm sorry, yourparty is unable to take your call at this time. Thank you for calling.Goodbye." Then at step 2050, the trunk 3 is placed on hook therebydisconnecting the calling party and control is returned to the CPF--CallHandler Task via the connector labelled "CPF IDLE" at reference 2051.If, as described earlier, at step 2045 it is determined that the digitis not `3`, then control is passes to step 2052 where it is determinedwhether the digit is a `4`, and if so control is passes to the connectorlabelled "CPF VSCRN LISTEN" at reference 2053, allowing the subscriberto again hear the calling party's message as described earlier. If atstep 2052 it is determined that the digit is not a `4`, then controlpasses to step 2054 where the digit is checked to determine if it is a`5`, and if it is not control passes to a connector labelled "CPF VSCRNDIGIT" at reference 2060. If the digit is a `5, then control passes tostep 2055 where a one minute timer in started. Then at step 2056 adetermination is made whether any further digits have been entered bythe subscriber, and if not control passes to step 2058 where the oneminute timer is checked. If the timer is found to have expired, thencontrol passes to a connector labelled "CPF VSCRN MENU" at reference2059, causing the menu of step 2025 to be replayed to the subscriber. Ifthe timer is found to have not expired, then control returns to step2056 where a determination is again made as to whether any digits havebeen entered by the subscriber, and if so control passes to a connectorlabelled "CPF VSCRN LOOP" at reference 2057, thereby allowing the digitto be processed. The connector labelled "CPF VSCRN DIGIT6" at reference2061 causes control to be passed to step 2062 where a determination ismade as to whether the digit pressed by the subscriber is a 6, and ifnot control passes to step 2075. If the digit is a `6`, then controlpasses to step 2063 where the subscriber is prompted by call processor435: "Please enter the telephone number you wish to have this calltransferred to." Then at step 2064, the control idles, waiting for atelephone number to be entered by the subscriber. If a phone number isentered, then control passes to step 2065, where the subscriber isprompted: "Number accepted. Please hang up now." Then at step 2066 aflash is generated causing switch 4 to temporarily conference thecalling party and the subscriber. Then, after a 2 second pause at step2067, another flash is generated at step 2068 causing switch 4 toterminate the conference by dropping the subscriber, leaving just thecalling party connected to trunk 3. Then at step 2069 the calling partyis prompted by call processor 435: "Please standby." Then at step 2070 aflash is generated causing switch 4 to place the calling party on holdand providing a dial tone to the trunk 3. Then, after a pause for dialtone at step 2071, the phone number detected in step 2064 is dialed atstep 2072, and at step 2073 trunk 3 is placed on hook causing switch 4to transfer the calling party to the phone number dialed, and control isreturned to the CPF--Call Handler Task via the connector labelled "CPFIDLE" at reference 2074. If, as described earlier, at step 2062 it isdetermined that the digit entered by the subscriber is not a `6`, thencontrol passes to step 2075. At step 2075, a determination is made as towhether the digit is a `7`, and if not then control passes to aconnector labelled "CPF VSCRN LOOP" at reference 2076 thereby allowingthe subscriber to enter another digit. If the digit entered is a `7`, asdetermined at step 2075, then control passes to step 2077 where a flashis generated causing switch 4 to temporarily conference the callingparty and the subscriber. Then, after a 2 second pause at step 2078,another flash is generated at step 2079 causing switch 4 to terminatethe conference by dropping the subscriber, leaving just the callingparty connected to trunk 3. Then at step 2080 the calling party isprompted by call processor 435: "Your party is not interested in yourcall. Please remove this party from your list and do not call again.Good-bye." Then at step 2081 trunk 3 is placed on hook causing switch 4to disconnect the calling party, and control is returned to theCPF--Call Handler Task via the connector labelled "CPF IDLE" atreference 2082.

A flowchart of the CPF--Meet Me Caller function is illustrated in FIG.21. The purpose of this function is to process calls for a subscriberwho has chosen to have his calls handled by the meet-me function. In thepreferred embodiment these calls are handled by conferencing the calleron a trunk 3 of the CPF 100 with a line 120 on the Meet-Me Facility(MMF) 115. Then when the subscriber calls in to be connected, he is alsoconference from a trunk 3 of the CPF 100 with a line 120 on the MMF 115.The CPF may then hang up on both the caller's trunk 3 and thensubscriber's trunk 3,. thereby transferring the caller and subscriber tothe MMF lines 120. The lines 120 are provisioned with the CENTREXfeatures of `call transfer` and `barge-in`, so that the caller andsubscriber may then be connected as follows: The line 120 which isconnected to the caller dials the CENTREX barge-in command (*77)followed by the CENTREX `intercom code` for the line 120 which isconnected to the subscriber. The caller and the subscriber are thusconnected, and the line 120 which connects to the subscriber may then goon hook, transferring the subscriber to the caller's line 120. Theconversation may then take place and only one line of line 120 is used.To fully understand the explanation of the CPF--Meet Me Caller functionwhich follows, it is necessary to also review the explanations which areassociated with FIG. 30 (CPF--Command Meet Me), FIG. 33 (MMF blockdiagram), and FIG. 34 (Meet Me Facility Main Task). Referring now toFIG. 21, the CPF--Meet Me Caller function is entered at step 2100 andcontrol passes to step 2101 where the calling party is informed by callprocessor 435: "We are paging your party to a phone. Please stay on theline." Then at step 2102 a flash is generated causing switch 4 to placethe calling party on hold and generate a dial tone on trunk 3. Then atstep 2103 the call processor 435 dials the phone number which isassociated with one of the lines 120 which are connected to the Meet-MeFacility (MMF) 115, and at step 2104 a 15 second timer is initiated.Then at step 2105, a determination is made as to whether DTMF `*` tonehas been detected by call processor 435, indicating that the MMF 115 hasanswered. If the `*` tone is not detected, then control passes to step2106 where the 15 second timer is checked, and if found to have notexpired then control returns to step 2105. If the 15 second timer isfound to have expired, then control passes to step 2107, where a flashis generated causing switch 4 to temporarily conference the callingparty to the number dialed above. Then after a 2 second pause at step2108, another flash is generated at step 2019, causing switch 4 to dropthe dialed number from the conference, leaving just the calling partyconnected to trunk 3. Then at step 2110, a check is made to determine ifdial tone is present on trunk 3. If dial tone is found to be present,indicating that the sequence of steps 2107 through 2109 had failed torestore the calling party possibly because the conference thought to becreated at step 2107 was not allowed by switch 4, then another flash isgenerated at step 2111, which is identified by a connector labelled "CPFMMF FLASH" at reference 2134. This flash causes switch 4 to reconnectthe calling party to trunk 3, and then control passes via a connectorlabelled "CPF MM MSSG" at reference 2112 to step 2113. If dial tone isnot detected at step 2110, then control passes directly to step 2113. Atstep 2113, the current time and date is stored in the `last meet-memessage left` field 720 of the subscriber master record 700, and thencontrol passes to the connector labelled "CPF SORRY" at reference 2114,causing the caller to be connected to the message center as wasdescribed earlier. If at step 2105, the `*` tone is detected, indicatingthat the MMF 115 has answered, then control passes to step 2115 wherecall processor 435 dials the digit `00`0 signifying that this is acaller, not a subscriber. Then at step 2116, the call processor 435dials the subscriber's DID number 701, to identify to the MMF who thecalling party is waiting for. Then at step 2117, a flash is generated,causing switch 4 to conference the calling party through to this line120 of the MMF 115, and at step 2118 a 2 second timer is initiated. Thenat step 2119, a determination is made as to whether another `*` tone isdetected by call processor 435, indicating the conference wassuccessful. If the `*` tone is not detected, this implies that theconference was not successful, most likely because the calling party hashung up. In this case the 2 second timer is checked at step 2120, and ifit is found not to have expired control returns to step 2119. If the 2second timer has expired, then control passes via a connector labelled"CPF MM ABANDON" at reference 2121 to step 2122 where the current timeand date are stored in the `last meet-me abandon` field 719 of thesubscriber master record. Then control passes to step 2123 where thetrunk 3 is placed on hook and control is returned to the CPF--CallHandler Task via the connector labelled "CPF IDLE" at reference 2124. Ifat step 2119 the `*` tone is detected, then control passes to step 2125where a repeat count is set to a value of 3. Then at step 2126, thecalling party is informed by call processor 435: "We have sent a page toalert your party of the call. Your party is currently proceeding to aphone and we will connect you momentarily. If you are unable to wait,you may touch 9 at any time to leave a detailed message which we willrelay to your party as soon as they pick up the line." Then at step2127, the call processor 435 plays a `music on-hold` selection ofduration 40 seconds. Then at step 2128 a determination is made as towhether the subscriber has called in, by checking the CPF--Call HandlerTasks controlling the other trunks 3 connected to the CPF 100. If thesubscriber is found, and if he has entered his PIN code 702 and touched4 indicating he wishes to be connected to the caller, then step 2128will return a positive indication causing control to pass to theconnector labelled "CPF MM SUBCALL" at reference 2129. If a negativeindication is returned at step 2128, then control passes to step 2130where a determination is made as to whether the caller has entered `9`.If the caller does enter `9`, then control passes to step 2111, causingthe caller to be connected to the message center as describer earlier.If the caller has not entered `9`, then control passes to step 2131,where a determination is made as to whether the 40 second music-on-holdselection is complete. If it is not complete, then control returns tostep 2128. If the selection is complete, then control passes to step2132 where the repeat count is decremented. Then at step 2133 adetermination is made as to whether the value of the value of the repeatcount is now zero. If the value is zero, then control passes to step2111, causing the caller to be connected to the message center asdescriber earlier. If the value of the repeat count is not yet zero,then control returns to step 2127, where the sequence of steps 2127through 2133 is repeated once more. The connector labelled "CPF MMSUBCALL" at reference 2135 causes control to be passed to step 2136where the DTMF fourth column tone digit `d` is dialed by call processor435 to inform the MMF 115 that the subscriber has arrived. Then at step2137, the call processor 435 prompts the calling party: "Your party haspicked up the line. One moment and we will connect you." Then at step2138, a 20 second timer is initiated, and at step 2139 the callprocessor 435 begins to play audible ringing, with a cadence of 2seconds on, 4 seconds off, to the caller. Then at step 2140, the 20second timer is checked, and if it is found to have expired, indicatingthat the subscriber did not connect to the MMF 115, then control passesto the connector labelled "CPF MM FLASH" at reference 2141, causing thecaller to be connected to the message center as was described earlier.If the 20 second timer has not expired, then control passes to step 2142where a determination is made as to whether the subscriber has connectedto the MMF 115, as determined by checking with the CPF--Call HandlerTask that was found to be controlling the trunk 3 connected to thesubscriber. If the subscriber has not connected to the MMF 115, thencontrol returns to step 2140. If the subscriber has connected to the MMF115, then the trunk 3 is placed on hook causing switch 4 to transfer thecalling party to the line 120 of the MMF 115, and control is returned tothe CPF--Call Handler Task via the connector labelled "CPF IDLE" atreference 2144.

A flowchart of the CPF--Send Page Subroutine is illustrated in FIG. 22.The purpose of this subroutine is to send page messages via the highspeed data network 150 from the CPF 100 to either the PDF 105, or theCAF 125. These messages contain the pager number and any digits whichare to be transmitted to the display of the pager. The CPF--Send PageSubroutine is entered at step 2200 and control passes to step 2201 wherethe pager number 710 for this subscriber is retrieved from thesubscriber master record 700. Then at step 2202, a message isconstructed consisting of the pager number 710, and the display digitswhich were identified as this subroutine was called. Then at step 2203 adetermination is made as to whether the pager number 710 represents acommunicator. In the preferred embodiment, each communicator 11 isidentified by a pager number 710 which starts with the digits `000`. Ifthe pager number 710 is found to be that of a communicator 11, thencontrol passes to step 2204, and the data network interface 510 isinstructed to send the message via network 150 to the CommunicatorAccess Facility (CAF) 125, and then control is returned from thissubroutine to the calling program, as represented at step 2206. If thepager number 710 is not found to be that of a communicator 11, thencontrol passes to step 2205, where the data network interface 510 isinstructed to send the message via network 150 to the Pager DialingFacility (PDF) 105, and then control is returned from this subroutine tothe calling program, as represented at step 2206.

A flowchart of the CPF--Command Mode function is illustrated in FIG. 23.The CPF--Command Mode function is entered at step 2300 and controlpasses to step 2301 where the subscriber's pre-recorded `drop-in` nameis retrieved from disk 505. Then at step 2302, the call processor 435prompts the subscriber: "Hello . . . ", and then plays the back the`drop-in` name. Then at step 2303, a determination is made as to whethera meet-me call is currently holding for this subscriber. This isdetermined by checking the CPF--Call Handler Tasks which control theother trunks 3 connected to CPF 100. If a meet-me call is found to beholding for this subscriber, then at step 2304, the subscriber isprompted: "A call is holding on your meet-me service. Touch 4 to beconnected to the caller." Control then passes to step 2317. If a meet-mecall is not holding for this subscriber, then control passes to step2305 where a determination is made as to whether a meet-me caller wasrecently holding, but hung up without leaving a message. If the time anddate stored in the `last meet me abandon` field 719 of the subscribermaster record 700 is not more than 20 minutes older than the currentdate and time, then it is determined that a meet-me caller recentlyabandoned a call, and control passes to step 2306 where the subscriberis prompted: "A call was recently holding on your meet-me service,however the caller chose not to wait and hung up without leaving amessage." Control then passes to step 2307 where the `last meet-meabandon` field 719 of the subscriber master record 700 is cleared.Control then passes to step 2308. Control also passes to step 2308 if,at step 2305, it is determined that a meet-me caller did not recentlyabandon a call. At step 2308, a determination is made as to whether ameet-me caller is currently leaving a message for the subscriber. Thisis determined by checking the CPF--Call Handler Tasks which control theother trunks 3 connected to CPF 100. If it is determined that a meet-mecaller is currently leaving a message for this subscriber, then controlpasses to step 2309, where the subscriber is prompted: "A call wasrecently holding on your meet-me service, however the caller chose notto wait and is currently leaving you a message. When the message iscomplete we will connect you to your message center, or you may touch *now to skip this." Control then passes to step 2310 where`music-on-hold` is played to the subscriber by call processor 435.Control then passes to step 2311 where a determination is made as towhether the meet-me caller has finished leaving the message. If themessage is complete, then control passes to the CPF--Command MessageCenter function as shown at reference 2313. If the caller is stillleaving the message, then control passes to step 2312 where adetermination is made as to whether the subscriber has entered the `*`digit. If the `*` digit is not entered, then control returns to step2311. If the `*` digit is entered, then control passes to step 2317. Ifat step 2308, a determination is made that a meet-me caller is notcurrently leaving a message for this subscriber, then control passes tostep 2314, where a determination is made as to whether a meet-me callerrecently left a message for this subscriber. If the time and date storedin the `last meet me message left` field 720 of the subscriber masterrecord 700 is not more than 20 minutes older than the current date andtime, then it is determined that a meet-me caller recently left amessage, and control passes to step 2315 where the subscriber isprompted: "A call was recently holding on your meet-me service, howeverthe caller chose not to wait and instead left you a message." Controlthen passes to step 2316 where the `last meet-me message left` field 720of the subscriber master record 700 is cleared. Control then passes tostep 2317. Control also passes to step 2317 if, at step 2314, it isdetermined that a meet-me caller did not recently leave a message. Atstep 2317, a determination is made as to whether the subscriber hasselected an external message center. As described earlier, thisdetermination is made by examining the message center number 709 in thesubscriber master record 700. If the message center number 709 containsa-phone number, then external has been selected. If the message centernumber 709 does not contain a phone number, then internal message centerhas been selected. If, at step 2317, it is determined that thesubscriber has selected an external message center, then control passesto step 2318, where the caller is prompted: "We have transferred . . .". Control then passes to 2319 where the `external message centertransfer count` 721 is retrieved from the subscriber master record 700,and is voiced to the subscriber by call processor 435. Control thenpasses to step 2320, where the prompt is completed by playing: " . . .since you last checked messages." Control then passes to the connectorlabelled "CPF MODE DESCR" at reference 2323. If, at step 2317, it isdetermined that the subscriber had selected the internal message center,then control passes to step 2321 where the number of messages currentlystored for this subscriber on disk 505 is determined. At step 2322 then,the call processor 435 prompts the subscriber: "You have X messages.",where X is the number determined above. Control then passes to theconnector labelled "CPF MODE DESCR" at reference 2323. The connectorlabelled "CPF MODE DESCR" at reference 2324, causes control to be passedto step 2325, where a description is played of the current call handlingmode. This description includes the current mode memory number 715, thecurrent call handling mode 703, and the current transfer number 707, ifappropriate. For example, the subscriber may hear: "Your calls arecurrently being handled by mode memory 10, urgent-screened forwarding to555-1111." If the transfer number 707 is the tag for the subscriber'shome, office, pager, mobile-phone, or message center, then this would bevoiced in words, ie: " . . . to your home." After playing a descriptionof the current call handling mode, then control passes to step 2326,where a determination is made as to whether the feature timer iscurrently active. As was described earlier, this determination is madeby checking the feature timer duration 724. If the feature timer isfound to be active, then it's status is voiced to the subscriber at step2327. For example, the subscriber may be prompted: "The feature timer iscurrently active and will cause mode memory 10 to be invoked at 5:30today." Control then passes to step 2328. Control also passes to step2308 if the feature timer was found to be inactive at step 2326. At step2328, a determination is made as to whether the weekly schedule isactive. This determination is made by checking the weekly scheduleactive flag 728 of the subscriber master record 700. If the weeklyschedule is found to be active, then the status of the weekly scheduleis voiced to the subscriber at step 2329. For example, the subscribermay be prompted: "The weekly schedule is on, and the next step willcause memory 20 to be invoked at 7:30 PM on Tuesday." Control thenpasses via connector labelled "CPF MAIN DIRECTORY" at reference 2330 tostep 2331. Control also passes via connector 2330 to step 2331 if theweekly schedule is found to be inactive at step 2328. At step 2331 thecall processor 435 prompts the subscriber: "Main Directory. Enter 1 tocheck messages, 2 to change your forwarding number, 3 to select amemory, 9 to make a call, or 0 for help." Control then passes to a loopconsisting of steps 2332 through 2339. At each of these steps adetermination is made as to whether a particular digit has been enteredby the subscriber. If the result is positive on any of these steps, thencontrol is passed to another function. If the digit `1` is found at step2332, then control passes to the CPF--Command Message Center function,as shown at reference 2340. If the digit `2` is found at step 2333, thencontrol passes to the CPF--Command Forwarding Number function, as shownat reference 2341. If the digit `3` is found at step 2334, then controlpasses to the CPF--Command Memory function, as shown at reference 2342.If the digit `9` is found at step 2335, then control passes to the CPFCommand Outside Call function, as shown at reference 2343. If the digit`0` is found at step 2336, then control passes to the CPF--Command Helpfunction, as shown at reference 2344. If the digit `4` is found at step2337, then control passes to the CPF--Command Meet Me function, as shownat reference 2345. If the digit `5` is found at step 2338, then controlpasses to the CPF--Command Branch Route function, as shown at reference2346. If the digit `8` is found at step 2339, then control passes to theCPF--Command Advanced features function, as shown at reference 2347.

A flowchart of the CPF--Command Message Center function is illustratedin FIG. 24. The CPF--Command Message Center function is entered at step2400 and control passes to step 2401 where a determination is made as towhether the subscriber has selected an external message center. Asdescribed earlier, this determination is made by examining the messagecenter number 709 in the subscriber master record 700. If the messagecenter number 709 contains a phone number, then external has beenselected. If the message center number 709 does not contain a phonenumber, then internal message center has been selected. If, at step2401, it is determined that the subscriber has selected an externalmessage center, then control passes to step 2402, where the caller isprompted: "Please standby." Control then passes to step 2403 where aflash is generated causing switch 4 to place the subscriber on hold aapply a dial tone to trunk 3. Then, after pausing for dial tone at step2404, the message center number 709 is dialed by call processor 435 atstep 2405. Then at step 2406, the trunk 3 is placed on hook, causingswitch 4 to transfer the subscriber to the message center number. Thenat step 2407, the `external message center transfer count` 721 of thesubscriber master record 700 is cleared. Control is then returned to theCPF--Call Handler Task via the connector labelled "CPF IDLE" atreference 2408. If, at step 2401, it is determined that the subscriberhas selected internal message center, then control passes to step 2409,where a determination is made as to whether the subscriber has anymessages stored on disk 505. If there are no messages stored for thissubscriber, then control passes to step 2410, where the subscriber isinformed: "You have no messages." Then at step 2411, the subscriber isprompted: "Enter 8 to return to the main directory." Control then passesto step 2412, where a determination is made as to whether the digit `8`has been entered, and if it has not been entered, then control returnsto step 2410. If the digit `8` has been entered, then control passes tothe connector labelled "CPF MAIN DIRECTORY" at reference 2413, allowingthe subscriber to make additional selections from the main directory ofthe command mode. If at step 2409, the determination is made that thesubscriber does have messages stored on disk 505, then control passes tostep 2414, where one of the stored messages is played back to thesubscriber, and the subscriber is given the opportunity to save ordelete the message by entering the digits `1` or `2` respectively.Control then passes to step 2415, where a determination is made as towhether the digit `9` has been entered. If the digit `9` is entered,then control passes to the CPF--Command Outside Call function as shownat reference 2416, where the subscriber is given the opportunity to makea call, perhaps returning a call to the person who left the message.

If the digit `9` was not entered, then control passes to step 2417,where a determination is made as to whether any more messages are storedon the disk 505. If more messages exist, then control is returned tostep 2414. If no more messages exist, then control passes to step 2418,where the subscriber is prompted: "You have no more messages. Enter 8 toreturn to the main directory." Control then passes to step 2419, where adetermination is made as to whether the digit `8` has been entered, andif it has not been entered, then control returns to step 2418. If thedigit `8` has been entered, then control passes to the connectorlabelled "CPF MAIN DIRECTORY" at reference 2413, allowing the subscriberto make additional selections from the main directory of the commandmode.

A flowchart of the CPF--Command Forwarding Number function isillustrated in FIG. 25. The CPF--Command Forwarding Number function isentered at step 2500 and control passes to step 2501 where adetermination is made as to whether the current call handling mode 703for this subscriber is `message center` or branch routing`. Since it isnot logical to change a forwarding number in a mode that does notrequire a forwarding number, if it is determined that either of thesemodes are active, then control will pass to step 2502, where thesubscriber will be prompted: "Invalid command." Control then passes tothe connector labelled "CPF MAIN DIRECTORY" at reference 2503, allowingthe subscriber to make additional selections from the main directory ofthe command mode. If, at step 2501, it is determined that the currentcall handling mode 703 is not `message center` or `branch routing`, thencontrol passes to step 2504, where a determination is made as to whetherthe transfer number 707 is set equal to the `meet-me tag`. If so, thencontrol passes to step 2505, where the subscriber is prompted: "Yourcalls are currently being forwarded to you via your meet me service."Control then passes to step 2508. If, at step 2504, it is determinedthat the forwarding number is not equal to the `meet-me tag` thencontrol passes to step 2506, where the subscriber is prompted: "Yourcalls are currently being forwarded to . . . " Control then passes tostep 2507, where the transfer number 707 is retrieved from thesubscriber master record 700, and voiced to the subscriber. Control thenpasses to step 2508, where the subscriber is prompted: "Please enteryour new forwarding number, or enter * to skip this, or enter 6 to useyour meet-me service." Control then passes to step 2509, where adetermination is made as to whether the subscriber has entered a validphone number, or a tag for home, office, or mobile phone. If so, thencontrol passes to step 2510, where the phone number is stored as the newtransfer number 707 in the subscriber master record 700, and thesubscriber is prompted: "Accepted, your calls are currently beingforwarded to . . . ", and the transfer number 707 is voiced. Controlthen passes to the CPF--Command Feature Timer function as shown atreference 2511. If it is determined at step 2509 that the subscriber hasnot entered a phone number, then control passes to step 2512, where adetermination is made as to whether the subscriber has entered the digit`6`, and if so control passes to step 2513 where the `meet-me tag` isstored as the transfer number 707 in the subscriber master record 700,and the subscriber is prompted: "Accepted, your calls are currentlybeing forwarded to you via your meet-me service." Control then passes tothe CPF--Command Feature Timer function as shown at reference 2511. Ifit is determined at step 2512 that the digit `6` has not been entered,then control passes to step 2514, where a determination is made as towhether the digit `*` has been entered, and if not control returns tostep 2509. If the digit `*` has been entered, then the transfer number707 remains unchanged, and control passes to the CPF--Command FeatureTimer function as shown at reference 2511.

A flowchart of the CPF--Command Feature Timer function is illustrated inFIG. 26. The CPF--Command Feature Timer function is entered at step 2600and control passes to step 2601 where the subscriber is prompted:"Please enter the length of time you wold like your current feature tobe in effect, or enter * to skip the feature timer." Control then passesto step 2602, where a determination is made as to whether the digit `*`has been entered by the subscriber. If the digit `*` has been entered,then control passes to step 2603, where the subscriber is prompted:"Accepted, your feature will be in effect until further notice." Controlthen passes to the connector labelled "CPF MAIN DIRECTORY" at reference2613, allowing the subscriber to make additional selections from themain directory of the command mode. If at step 2602, it is determinedthat the digit `*` has not been entered, then control passes to step2604 where a determination is made as to whether a valid duration hasbeen entered. This duration must be in the form of hours first followedby minutes. For example, to enter 1 hour and 20 minutes, the subscribermust enter `1 2 0`. If a valid duration is not found to be entered atstep 2604 then control returns to step 2602. If a valid duration isentered, then control passes to step 2605, where the duration is storedas the `feature timer duration` 724 of the subscriber master record 700,and the subscriber is prompted: "Accepted, . . . " and the duration timeis voiced. Control then passes to step 2606 where the subscriber isprompted: "Please enter the memory number you wish to invoke upontermination of the feature timer, or enter * to use the previous mode,or touch 9 to use the schedule." Control then passes to step 2607, wherea determination is made as to whether the subscriber has entered thedigit `*`, and if so then at step 2608 the previous mode memory is savedin temporary mode memory 0, mode memory 0 is stored as the feature timertermination mode 725 of the subscriber master record, and the subscriberis prompted: "Accepted, your feature will be in effect until (time) atwhich time the previous mode will be invoked.", where the value of(time) corresponds to the current time plus the feature timer duration724. Control then passes to the connector labelled "CPF MAIN DIRECTORY"at reference 2613, allowing the subscriber to make additional selectionsfrom the main directory of the command mode. If at step 2607 it isdetermined that the digit `*` has not been entered, then control passesto step 2609, where a determination is made as to whether the digit `9`is entered, and if so control passes to step 2610 where the weeklyschedule is saved in temporary mode memory 0, mode memory 0 is stored asthe feature timer termination mode 725 of the subscriber master record,and the subscriber is prompted: "Accepted, your feature will be ineffect until (time) at which time the weekly schedule will be invoked.",where the value of (time) corresponds to the current time plus thefeature timer duration 724. Control passes to the connector labelled"CPF MAIN DIRECTORY" at reference 2613, allowing the subscriber to makeadditional selections from the main directory of the command mode. If atstep 2609 it is determined that the digit `9` has not been entered, thencontrol passes to step 2611, where a determination is made as to whethera valid mode memory 10 through 99 is entered, and if so control passesto step 2612 where the mode memory is stored as the feature timertermination mode 725 of the subscriber master record, and the subscriberis prompted: "Accepted, your feature will be in effect until (time) atwhich time mode memory XX will be invoked.", where the value of (time)corresponds to the current time plus the feature timer duration 724.Control passes to the connector labelled "CPF MAIN DIRECTORY" atreference 2613, allowing the subscriber to make additional selectionsfrom the main directory of the command mode.

A flowchart of the CPF--Command Memory function is illustrated in FIG.27. The CPF--Command Memory function is entered at step 2700 and controlpasses to step 2701 where the subscriber is prompted: "Your calls arecurrently being handled via mode memory XX.", where XX is the currentmode memory number 715 of the subscriber master record. Control thenpasses to step 2702, where a description of the mode is voiced to thesubscriber. This description includes the current call handling mode703, and the current transfer number 707, if appropriate. For example,the subscriber may hear: "Your calls are currently being urgent-screenedforwarded to 555-1111." If the transfer number 707 is the tag for thesubscriber'home, office, pager, mobile-phone, or message center, thenthis would be voiced in words, ie: " . . . to your home." Control thenpasses to step 2703 where the subscriber is prompted: "Please enter anew mode memory number or enter * to skip this." Control then passes tostep 2704 where a determination is made as to whether the digit `*` hasbeen entered. If the digit `*` is entered, then control passes to theCPF--Command Feature Timer function as shown at reference 2722. If atstep 2704, it is determined that the `*` digit has not been entered,then control passes to step 2705, where a determination is made as towhether a valid 2 digit mode memory number has been entered, and if sucha mode memory number has not been entered, then control returns to step2703. If a valid mode memory number is entered, then control passes tostep 2706, where the mode memory number is stored as the current modememory number 715 of the subscriber master record 700, the correspondingmode memory 800 is copied to the subscriber master record, thesubscriber is prompted: "Accepted, you have selected mode memory XX,which causes your calls to be . . . ", and then control passes to step2707. At step 2707, the prompt is completed by playing a briefdescription of the selected mode memory. The description includes thecall handling mode 703, and the transfer number 707 if appropriate. Forexample, at step 2707 the remainder of the prompt may be: " . . .handled by your message center." At step 2708 a determination is made asto whether the selected mode memory requires an `externally enterednumber`. This is determined by checking the transfer number field 707 ofthe selected mode memory, to determine if it contains an `externallyentered number` tag. If this is the case, then the subscriber must entera transfer number after selecting this memory. If the externally enterednumber is not required, then control passes to the CPF--Command FeatureTimer function as shown at reference 2722. If it is determined at step2708 that an externally entered number is required, then control passesto step 2710, where the subscriber is prompted: "Please enter your newforwarding number or enter * to skip this and use . . . ". Control thenpasses to step 2711 where the previous transfer number is voiced to thesubscriber. Control then proceeds to step 2712 where the subscriber isfurther prompted with: " . . . or enter 6 to use your meet-me service."Control then passes to step 2713 where a determination is made as towhether the digit `*` has been entered. If the digit `*` has beenentered then control passes to step 2716. otherwise, control passes tostep 2714 where a determination is made as to whether a phone number ortag has been entered by the subscriber. If not, then control returns tostep 2710. If a phone number or tag has been entered, then controlpasses to step 2715 where the phone number is stored as the transfernumber 707 of the subscriber master record 700, the subscriber isprompted: "Accepted . . . ", and the phone number or tag is voiced.Control then passes to step 2716, where a determination is made as towhether the memory has an extension number in the extension number field708 of the subscriber master record 700. If an extension number does notexist in this field, then control passes to the CPF--Command FeatureTimer function as shown at reference 2722. If at step 2716 it isdetermined that an extension number does exist, then control passes tostep 2717 where the subscriber is given an opportunity to modify theextension number. At step 2717 the subscriber is prompted: "Please enteryour new extension number or enter * to skip this and use . . . ".Control then passes to step 2718 where the phrase is completed byvoicing the current extension number 708. Control then passes to step2719 where a determination is made as to whether a new extension numberhas been entered, and if so, then control passes to step 2720 where theextension number is stored in the extension number field 708, thesubscriber is prompted: "Accepted, . . . ", the new extension number isvoiced, and control passes to the CPF--Command Feature Timer function asshown at reference 2722. If at step 2719 it is determined that anextension number has not been entered then control passes to step 2721,where a determination is made as to whether the digit "*" is entered,and if the "*" digit is not entered then control returns to step 2717.If at step 2721 it is determined that the "*" digit is entered thencontrol passes to the CPF--Command Feature Timer function as shown atreference 2722.

A flowchart of the CPF--Command outside Call function is illustrated inFIG. 28. The CPF--Command Outside Call function is entered at step 2800and control passes to step 2801 where the call processor 435 plays a`stutter dial tone` to the subscriber. Control then passes to step 2802where a determination is made as to whether the subscriber has enteredthe `#` digit. If the `#` digit has been entered, then control passes tothe connector labelled "CPF MAIN DIRECTORY" at reference 2803, allowingthe subscriber to make additional selections from the main directory ofthe command mode. If at step 2802 it is determined that the subscriberhas not entered the `#` digit, then control passes to step 2804 where adetermination is made as to whether the subscriber has entered a phonenumber that he wishes to be connected to. If a phone number has not beenentered, then control returns to step 2802. If at step 2804 it isdetermined that a phone number has been entered, then control passes tostep 2805, where a flash is generated, causing switch 4 to place thesubscriber on hold, and applying a dial tone to the trunk 3. Then, aftera pause for dial tone at step 2806, the call processor 435 dials thephone number at step 2807, which had been entered by the subscriber.Control then passes to step 2808, where the `multiple outside callsallowed` flag 729 of the subscriber master record 700 is checked. Ifthis flag is not active, then control passes to step 2809 where thetrunk 3 is placed on hook, causing switch 4 to transfer the subscriberto the dialed number, and control is returned to the CPF--Call HandlerTask via the connector labelled "CPF IDLE" at reference 2810. If at step2808 it is determined that the `multiple outside calls allowed` flag 729is set, then control passes to step 2811, where a flash is generatedwhich causes the subscriber to be conferenced to the dialed number whilemaintaining trunk 3 in the connection. In this way the subscriber maymake additional calls, or later return to the main directory withouthanging up and calling back. After the flash is generated at step 2811,control passes to step 2812 where a loop is entered waiting for thesubscriber to enter the digit sequence `##`. When trying to detect DTMFdigits while conversation may be present, as is the case in thissituation, requiring the two digits in sequence reduces the likelihoodof falsing on voice. If the subscriber enters `##`, then control passesto step 2813 where a flash is generated causing switch 4 to disconnectthe third party from the conference, leaving only the subscriberconnected to trunk 3. Control then returns to step 2801, where thesubscriber may make another call, or enter `#` to return to the maindirectory.

A flowchart of the CPF--Command Help function is illustrated in FIG. 29.The purpose of this function is to provide help to the subscriber who isusing the Command Mode features of the Telephone Control System. This isaccomplished by allowing the subscriber to enter the digit `0` for helpfrom any of the command mode functions. Once the digit `0` is entered,the subscriber is provided with an explanation of the function which wasbeing accessed at that moment. The subscriber may also touch anotherdigit `0` to reach a live client services representative. TheCPF--Command Help function is entered at step 2900 and control passes tostep 2901 where the step number of the function from which theCPF--Command Help was requested is saved for later use. Then at step2902, the subscriber is prompted: "You have selected the help function.You may enter 0 to be connected to a client services operator, 8 toreturn to the main directory, or # to return to the point where you werewhen you entered the help function." Control then passes to step 2903,where a context sensitive help prompt is played, based on the stepnumber saved in by step 2901. For example, if the saved step numberindicated that the help function was accessed while in the CPF--CommandForwarding Number function, then the call processor 435 would play theprestored help prompt associated with that function: "When you selectedthe help function you were in the process of changing your forwardingnumber." Control then passes to step 2904 where a determination is madeas to whether the digit `0` has been entered, and if so, control thenpasses to step 2905 where a flash is generated, causing switch 4 toplace the subscriber on hold, and applying a dial tone to the trunk 3.Then, after a pause for dial tone at step 2906, the call processor 435dials the phone number at block 2907, which is associated with a clientservices representative. Control then passes to step 2908 where thetrunk 3 is placed on hook, causing switch 4 to transfer the subscriberto the dialed number, and control is returned to the CPF--Call HandlerTask via the connector labelled "CPF IDLE" at reference 2909. If at step2904 it is determined that the digit `0` is not entered, then controlpasses to step 2910 where a determination is made as to whether thedigit `8` has been entered, and if so, control passes to the connectorlabelled "CPF MAIN DIRECTORY" at reference 2911, allowing the subscriberto make additional selections from the main directory of the commandmode. If at step 2910 it is determined that the digit `8` is notentered, then control passes to step 2912 where a determination is madeas to whether the digit `#` is entered, and if not control returns tostep 2902. If the digit `#` is entered, then the step number that wassaved at step 2901 is retrieved and the control returns to that step.

A flowchart of the CPF--Command Meet Me function is illustrated in FIG.30. The purpose of this function is to process the call for a subscriberwho has called in, entered his PIN code 702, and wishes to be connectedto a meet-me caller who is holding for him. The CPF--Command Meet Mefunction is entered at step 3000 and control passes to step 3001 where aflash is generated, causing switch 4 to place the subscriber on hold andapply a dial tone to the trunk 3. Then, after pausing for dial tone atstep 3002, the call processor 435 dials the phone number of the lines120 which are connected to the Meet Me Facility (MMF) 115 at step 3003.Control then passes to step 3004 where a 15 second timer is started, andthen to step 3005 where the 15 second timer is checked. If the 15 secondtimer has not expired, then control passes to step 3006 where adetermination is made as to whether a `*` digit is detected, indicatingthat the MMF 115 has answered the call. If the `*` digit is not detectedthen control returns to step 3005. If at step 3006, the `*` digit isdetected, then control passes to step 3007 where the call processor 435dials `01` indicating this call is from a subscriber, and then dials thesubscriber's DID number 701, thereby fully identifying the call to theMMF 115. Control then passes to step 3008 where a flash is generatedcausing switch 4 to take the subscriber off of hold and create aconference between the subscriber, trunk 3, and the line 120 of the MMF115. Control then passes to step 3009 where a 4 second pause isinitiated to allow the MMF 115 time to connect the caller into the call.Control then passes to step 3010 where the subscriber and caller areprompted by call processor 435: "Go ahead please." Control then passesto step 3011 where the trunk 3 is placed on hook, causing the switch 4to transfer the subscriber to the line 120 of the MMF 115. Control isthen returned to the CPF--Call Handler Task via the connector labelled"CPF IDLE" at reference 3012. If at step 3005 it is determined that the15 second timer had expired, indicating that the MMF 115 had notanswered the call, then control passes to step 3013 where a flash isgenerated causing switch 4 to create a temporary conference between thesubscriber and the dialed number, and then after a 2 second pause atstep 3014 another flash is generated at step 3015 causing switch 4 todrop the dialed number from the conference and leave just the subscriberconnected to the trunk 3. Control then passes to step 3016 where thesubscriber is prompted: "I'm sorry, we are unable to connect your callat this time." Control then passes to the connector labelled "CPF MAINDIRECTORY" at reference 3017, allowing the subscriber to make additionalselections from the main directory of the command mode.

A flowchart of the CPF--Command Branch Route function is illustrated inFIG. 31. The CPF--Command Branch Route function is entered at step 3100and control passes to step 3101 where a determination is made as towhether the current call handling mode 703 is `branch-routing`, and ifit is not control is passes to step 3102 where the subscriber isprompted: "Invalid command.", and control passes to the connectorlabelled "CPF MAIN DIRECTORY" at reference 3103, allowing the subscriberto make additional selections from the main directory of the commandmode. If at step 3101 it is determined that the call handling mode 703is `branch routing` then control passes to step 3104 where thesubscriber is prompted: "Enter 1 to record a new branch routinggreeting, 2 to change branch routing numbers, 3 to change the branchrouting default number, or `#` to return to the main directory." Controlthen passes to step 3105 where a determination is made as to whether thedigit `1` is entered, and if so, control passes to step 3106 where thesubscriber is prompted: "Your branch routing greeting is . . . ". Thenat step 3107, the branch routing greeting for this subscriber isretrieved from disk 505 and played back to the subscriber. Control thenpasses to step 3108 where the subscriber is prompted: "Please recordyour new branch routing greeting at the tone, or enter * to skip thisand use the existing branch routing greeting . . . BEEP." Then at step3109, the new greeting is recorded and control passes to step 3110 wherea determination is made as to whether the greeting is done, and if it iscontrol passes to step 3111 where the new branch routing greeting issaved to disk 505 and then control returns to step 3104. If at step 3110it is determined that the greeting is not done, then control passes tostep 3112 where a determination is made as to whether the digit `*` isentered, and if not control returns to step 3109. If at step 3112 it isdetermined that the digit `*` is entered, then control passes to step3113 where the old branch routing greeting on disk 505 is leftunchanged, and control then passes to step 3104. If at step 3105 it isdetermined that the digit `1` is not pressed, then control passes tostep 3114 where a determination is made as to whether the digit `2` isentered, and if it is entered then control passes to step 3115 where thesubscriber is prompted: "Please enter the branch routing directory digit1 to 9 for the phone number your wish to change, or touch * to skipthis." Control then passes to step 3116 where a determination is made asto whether the digit `*` is entered, and if it is entered controlreturns to step 3104. If at step 3116 it is determined: that the digit`*` is not entered, then control passes to step 3117 where adetermination is made as to whether one of the digits `1` to `9` areentered, and if one of those digits is entered control then passes tostep 3118. Otherwise control returns to step 3116. At step 3118 thesubscriber is prompted: "The branch routing transfer number for digit Xis . . . ". Control then passes to step 3119 where the branch routingnumber 722 that corresponds to the digit entered in step 3117 isretrieved from the subscriber master record 700 and voiced to thesubscriber. Then at step 3120 the subscriber is prompted: "Please enterthe new branch routing transfer number or touch * to skip this withoutmaking a change." Control then passes to step 3121 where a determinationis made as to whether the digit `*` is entered, and if it is enteredcontrol returns to step 3104. If at step 3121 it is determined that thedigit `*` is not entered, then control passes to step 3122 where adetermination is made as to whether a phone number has been entered, andif a phone number has not been entered, control returns to step 3121. Ifat step 3122 a phone number is entered, then control passes to step 3123where the subscriber is prompted: "Accepted." Then at step 3124 the newphone number is voiced to the subscriber. Control then passes to step3125 where the new phone number is saved as the branch routing number722 which corresponds to the digit entered in step 3117. Control thenreturns to step 3104. If at step 3114 it is determined that the digit`2` is not entered, then control passes to step 3126 where adetermination is made as to whether the digit `3` is entered, and if itis entered, then control passes to step 3127 where the subscriber isprompted: "The branch routing default transfer number is . . . ".Control then passes to step 3128 where the branch routing default number723 is retrieved from the subscriber master record 700 and voiced to thesubscriber. Then at step 3129 the subscriber is prompted: "Please enterthe new branch routing default transfer number, or touch * to skip thiswithout making a change." Control then passes to step 3130 where adetermination is made as to whether the digit `*` is entered, and if thedigit `*` is entered control returns to step 3104. If at step 3130 it isdetermined that the digit `*` is not entered, then control passes tostep 3131 where a determination is made as to whether a phone number hasbeen entered, and if a phone number has not been entered control returnsto step 3130. If it is determined at step 3131 that a phone number hasbeen entered, then control passes to step 3132 where the subscriber isprompted: "Accepted." Control then passes to step 3133 where the newphone number is voiced to the subscriber. Control then passes to step3134 where the new phone number is saved as the branch routing defaultnumber 723 in the subscriber master record. Control then returns to step3104. If at step 3126 it is determined that the digit `3`, is notentered, then control passes to step 3135 where a determination is madeas to whether the digit `#` is entered, and if it is not entered controlthen returns to step 3104. If at step 3135 it is determined that thedigit `#` is entered then control passes to the connector labelled "CPFMAIN DIRECTORY" at reference 3136, allowing the subscriber to makeadditional selections from the main directory of the command mode.

A flowchart of the CPF--Command Advanced Features function isillustrated in FIG. 32. The purpose of this function is provide thesubscriber with the opportunity to modify those features of theTelephone Control System 1 which do not need to be modified on a regularbasis. These features include allowing the subscriber to program modememories,. allowing the subscriber to record his `drop-in` name, or hispersonalized greeting, allowing the subscriber to program his reservednumbers, and allowing the subscriber to activate or deactivate theweekly schedule. The CPF--Command Advanced Features function is enteredat step 3200 and control passes to step 3201 where the subscriber isprompted: "Advanced Features Directory. Enter 1 to program modememories, 2 to record greetings, 3 to program reserved numbers, 4 toactivate the weekly schedule, 5 to deactivate the weekly schedule, or #to return to the Main Directory." Control then passes to step 3202 wherea determination is made as to whether the digit `1` is entered. If thedigit `1` is entered, then control passes to step 3203 where thesubscriber is allowed to specify a mode memory number 802 of value `10to `99`. If the mode memory number 802 specified already exists the callprocessor voices the status of that memory. The subscriber is then givenan opportunity to modify the parameters 803 contained in the modememory. When the subscriber is finished modifying the contents, thechanges are saved in mode memory 800. Control then returns to step 3201.If at step 3202 it is determined that the digit `1` is not entered, thencontrol passes to step 3204 where a determination is made as to whetherthe digit 2 is entered. If the digit `2` is entered, then control passesto step 3205 where the subscriber is allowed to listen to and re-recordthe `drop-in` name and the `personalized greeting`. If the subscriberdoes re-record either of these, then the changed name or greeting issaved on disk 505. Control then returns to step 3201. If at step 3204 itis determined that the digit `2` is not entered, then control passes tostep 3206 where a determination is made as to whether the digit `3` isentered. If the digit `3` is entered, then control passes to step 3207where the subscriber is allowed to modify the `message center number`709, the `pager number` 710, the `office number` 711, the `home number`712, or the `mobile phone number` 713. If the subscriber changes any ofthese numbers then the new number is saved in the corresponding field ofthe subscriber master record 700. Control then returns to step 3201. Ifat step 3206 it is determined that the digit `3` is not entered, thencontrol passes to step 3208 where a determination is made as to whetherthe digit `4` is entered. If the digit `4` is entered, then controlpasses to step 3209 where the subscriber is allowed to activate theweekly schedule. If the subscriber chooses to activate the weeklyschedule, then the `weekly schedule active` flag 728 of the subscribermaster record 700 is set. Control then returns to step 3201. If at step3208 it is determined that the digit `4` is not entered, then controlpasses to step 3210 where a determination is made as to whether thedigit `5` is entered. If the digit `5` is entered, then control passesto step 3211 where the subscriber is allowed to deactivate the weeklyschedule. If the subscriber chooses to deactivate the weekly schedule,then the `weekly schedule active` flag 728 of the subscriber masterrecord 700 is cleared. Control then returns to step 3201. If at step3210 it is determined that the digit `5` is not entered, then controlpasses to step 3212 where a determination is made as to whether thedigit `#` is entered. If the digit `#` is not entered, then controlreturns to step 3201. If at step 3212 it is determined that the digit`#` is entered then control passes to the connector labelled "CPF MAINDIRECTORY" at reference 3213, allowing the subscriber to make additionalselections from the main directory of the command mode.

A block diagram of the Meet-Me Facility (MMF) 115 is illustrated in FIG.33. As was discussed earlier, the MMF 115 interfaces to tip-ring lines120. These lines are provisioned by switch 4 with the CENTREX feature of`call transfer`, which allows a caller to be transferred to anothernumber by flashing, dialing the number, and then going on hook. Theselines are also provisioned by switch 4 with the CENTREX feature of`barge-in`, which allows a party on one of the lines 120 to barge into aconversation in progress on another of the lines 120. This isaccomplished by flashing, dialing a barge-in code (*77), and thendialing the intercom code associated with the line 120 of theconversation to be barged-in on. As was mentioned earlier, to fullyunderstand the operation of the meet-me feature it is necessary to alsoreview the explanations which are associated with FIG. 21 (CPF--Meet MeCaller), FIG. 30 (CPF--Command Meet Me), and FIG. 34 (Meet Me FacilityMain Task). Referring now to FIG. 33, the lines 120 are shown connectedto call processors 3300, which contain a tip-ring interface and DTMFgenerators and detectors. The functions of call processor 330 are wellknown in the art, and many products, such as the Model D41B manufacturedby Dialogic Corporation, exist commercially which can accomplish thesefunctions. The MMF 115 also contains a CPU 3301 which contains amongother things a microprocessor, a boot ROM, a RAM, and a disk. The MMF115 also contains a data network interface module 3302 which connects tothe high speed data network 150. The functions of data network interface150 are well known in the art, and many products, such as the ModelCOM4i from Digiboard Corporation, exist commercially which canaccomplish these functions. The call processors 3300, the CPU 3301, andthe data network interface 3302 are all shown connected to an internaldata bus 3303. The CPU 3301 initializes itself at power-up using theboot ROM and then loads a control program into memory which it thenexecutes. The control program allows for the control of simultaneousactivities on the lines 120.

A flowchart of the Meet Me Facility Main Task is illustrated in FIG. 34.The Meet Me Facility Main Task is the part of the MMF 115 controlprogram which controls the activities on one of the lines 120. The MeetMe Facility Main Task is entered at step 3400 and control passes to step3401 where a determination is made as to whether the call processor 3300has detected a ring signal on the line 120, and if a ring signal is notdetected, then control remains at step 3401. If a ring signal isdetected, then control passes to step 3402, where the line 120 is takenoff hook by call processor 3300, thereby answering the incoming call. Atstep 3403, a 1 second pause is initiated to allow for the line 120 tosettle, and then at step 3404 the call processor 3300 dials the DTMFdigit `*` as an answer indication to the CPF 100 which is calling. Thenat step 3405 a 5 second timer is started, and control then passes tostep 3406 where the 5 second timer is checked. If the 5 second timer hasexpired, then control passes to step 3407 where the line 120 is placedon-hook by call processor 3300, and then control returns to step 3401.If at step 3406 it is determined that the 5 second timer has notexpired, then control passes to step 3408 where a determination is madeas to whether the DTMF digit sequence `00` is detected by call processor3300, indicating the call is a meet-me caller from CPF 100. If the digitsequence `00` is not detected, then control passes to step 3409 where adetermination is made as to whether the DTMF digit sequence `01` isdetected, indicating the call is a meet-me subscriber from CPF 100. Ifthe digit sequence `01` is not detected, then control returns to step3406 where the 5 second timer is again checked. If at step 3408 it isdetermined that the digit sequence `00` is detected, then control passesvia a connector labelled "MMF CALLER" at reference 3410 to step 3411,where a determination is made as to whether a DTMF digit sequencerepresenting the Access Number 701 of the subscriber being called isdetected by call processor 3300. If a valid phone number is notdetected, then control remains at step 3411. If a valid phone number isdetected, then control passes to step 3412 where a 2 second pause isinitiated. Then at step 3413, the call processor 3300 dials the DTMFdigit `*` to inform the CPF 100 that the connection has been successfulso far. Control then passes to step 3414 where a determination is madeas to whether the DTMF digit `d` is detected, indicating that thesubscriber has called into the CPF 100, and the CPF 100 is about toconference him to the MMF 115. If the digit `d` is not detected thencontrol remains at step 3414. If the digit `d` is detected, then controlpasses to step 3415 where a flash is generated on lines 120 causing theCENTREX system serving lines 120 to place the calling party (in thiscase the CPF 100) on hold, and a dial tone to be applied to line 120.Control then passes to step 3416 where a determination is made as towhether the subscriber has yet been connected to one of the other oflines 120 on the MMF 115. If the subscriber has not yet been connected,then control remains at step 3416. If it is determined that thesubscriber has connected to one of the other of lines 120, then controlpasses to step 3417, where the CENTREX `barge-in code` (*77) is dialedby the DTMF generator of call processor 3300. Then at step 3418, thecall processor 3300 dials the intercom code for the line 120 which iscurrently connected to the subscriber. Control then passes to step 3419where a 2 second pause is generated, and then to step 3420 where a flashis generated. This causes the line 120 which is connected to thesubscriber to be connected via the CENTREX system to the line 120 whichis connected to the caller. Control then passes to step 3421 wherecontrol remains while the subscriber and caller converse, until a loopinterruption signal is detected on line 120 indicating at least one ofthe two parties has disconnected. Control then passes to step 3422 wherethe line 120 is placed on hook, and control the returns to step 3401. Ifat step 3409 it is determined that the digit sequence `01` is detected,then control passes via a connector labelled "MMF SUBSCRIBER" atreference 3423 to step 3424, where a determination is made as to whethera DTMF digit sequence representing the Access Number 701 of thesubscriber is detected by call processor 3300. If a valid phone numberis not detected, then control remains at step 3424. If a valid phonenumber is detected, then control passes to step 3425 where an indicationis made available that a subscriber is connected to the MMF 115 on thisline 120. Control then passes to step 3426 where a 3 second pause isinitiated, allowing time for the line 120 connected to the subscriber toperform the barge-in sequence. Control then passes to step 3427 wherethe line 120 is placed on hook causing the CENTREX system to calltransfer the subscriber to the line 120 which has just barged-in.Control then returns to step 3401.

A block diagram of the Subscriber Access Facility (SAF) 110 isillustrated in FIG. 35. The SAF 110 provides a means by whichsubscribers can access the Telephone Control System 1 via trunks whichprovide automatic number identification (ANI). SAF trunk interface 3500interfaces the SAF 110 with trunks 8. The trunk interface 3500 is thesame trunk interface as was described earlier at reference 400 used inthe CPF 100, however the E&M Lead Control Circuit operates under aslightly different set of instructions, as will be described below inthe explanation which accompanies FIG. 36. Still referring to FIG. 35,as was discussed earlier, the preferred embodiment of the TELEPHONECONTROL SYSTEM 1 employs a Feature Group D (FGD) facility for trunks 8.This is provided via a 4-wire E&M trunk provisioned with TYPE Isignaling, which is well known in the art. These type of trunks providea 2-wire balanced transmit audio connection, a 2-wire balanced receiveaudio connection, an E-Lead, and an M-Lead. Although only one trunkinterface 3500, one trunk 8, and one call processor 3504 are shown inFIG. 35, it should be readily evident to one skilled in the art thatadditional trunk interfaces and call processors may be added to supportadditional trunks. The trunk interface 3500 provides a two-way audiopath shown at reference 3501, a loop status output shown at reference3502, and a on/off hook control input shown at reference 3503. Theselines are shown connected to call processor 3504 which performs thefunctions of voice storage and playback, DTMF generation and detection,and call control. Devices which perform the functions of call processor3504 are well known in the art and many products, such as the Model D41Bmanufactured by Dialogic Corporation, exist commercially which canaccomplish these functions. Also shown is a multi frequency detectormodule 3505 which is shown connected to the call processor 3504. Acommercially available multi-frequency module capable of performing thisfunction is the Model MF/40 manufactured by Dialogic Corporation. A datanetwork interface 3507 is used to connect the SAF 110 to the othersubsystems of the Telephone Control System 1. Data network interface3507 passes data messages between the SAF 110 and these othersubsystems. The functions of data network interface 3507 are well knownin the art, and many products, such as the Model COM4i from DigiboardCorporation, exist commercially which can accomplish these functions.CPU 3506, which contains a microprocessor, a boot ROM, a RAM, and adisk, controls all functions of the SAF 110. The trunk interface 3500,the CPU 3506, the call processor 3504, and the data network interface3507 are all shown connected to an internal data bus 3508. The CPU 3506initializes itself at power-up using the boot ROM and then loads acontrol program into memory which it then executes. The control programallows for the control of simultaneous activities on the trunks 8. Anexplanation of the control program for the SAF 110 accompanies FIG. 37.

A flowchart of the operation of E&M control circuit for the trunkinterface 3500 of the SAF 115 is shown in FIG. 36. As the constructionof the trunk interface 3500 of FIG. 35 is identical to that of the trunkinterface 400 of FIG. 5, the explanation which follows will refer to thereference numbers of FIG. 5 when discussing the internal components ofthe trunk interface 3500. Referring now to FIG. 36, the E&M Lead ControlCircuit Operation for the SAF Trunk Interface function is entered atstep 3600 and control passes to step 3601 where the control circuit 450idles waiting for an indication from current detector 440 that theE-Lead has gone off-hook. When the E-Lead does go off-hook, controlpasses to step 3602 where an "Incoming Call" signal is sent to CPU 3506via buffer 460. Control then passes to step 3603 where a determinationis made as to whether an off-hook signal is received from call processor3504 signifying that the CPU 3506 is ready to accept the call. If theoff hook signal is detected, then control passes to step 3604 where the`loop status` 3502 is set active. Control then passes to step 3605 wherethe M-Lead is winked by taking the M-Lead relay 455 momentarilyoff-hook. Control then passes to step 3606 where a determination is madeas to whether a `DID received` signal 480 is detected. If the signal isnot detected then control remains at step 3606. If the signal isreceived, indicating that the multifrequency detector 3505 has detectedthe `ANI` and `called number` digits from the FGD trunk 8, then controlpasses to step 3607 where the M-lead relay is once more winkedmomentarily off hook to acknowledge receipt of the multifrequency data.A 300 millisecond pause is then initiated at step 3608, prior to takingthe M-Lead off hook at 3609 to `answer` the trunk. At this point audiois established by the switch which is providing the FGD service, and thecalling party is connected to the SAF 110. Control then passes to a loopconsisting of steps 3610 and 3611. This loop persists until either atstep 3610 the on/off hook signal 3503 is taken on hook by the callprocessor 3504, or at 3611 the E-Lead is determined to be on-hook. Ineither case the call is ended, and control passes to step 3612 where the`loop status` signal 3502 is set inactive. Then at step 3613 adetermination is made as to whether the `DID received` signal 480 stillremains active indicating the CPU 3506 is not yet ready to receive a newcall. If this signal is still active, then control remains at step 3613.If it is determined at step 3613 that the `DID received` signal 480 isnow inactive, then control passes to step 3614 where the M-Lead isplaced on hook, terminating the call, and control passes to step 3601.

A flowchart of the Subscriber Access Facility Main Task is illustratedin FIG. 37. This program is loaded into memory and executed by SAF CPU3506. The Subscriber Access Facility Main Task is entered at step 3700and control passes to step 3701 where a `clear DID received` signal issent to the trunk interface 3500. Control then passes to step 3702 wherethe `incoming call` signal of the trunk interface 3500 is checked. Ifthis signal is not active then control remains at step 3702. If thissignal is active, then control passes to step 3703, where the output ofthe multifrequency detector 3505 is checked via call processor 3504. Theincoming multifrequency digit sequence `KP`+`00`+ANI+`ST` is decodedwhere `KP` is the start digit, `ST` is the stop digit, and the ANI isthe phone number of the phone from which the subscriber is calling.Control then passes to step 3704 where, in a similar manner, theincoming multifrequency digit sequence `KP`+800+NXX+XXXX+`ST` isdecoded. Again the `KP` is the start digit, the `ST` is the stop digit,and the sequence 800 NXX XXXX is the phone number dialed by thesubscriber to reach the trunk 8, the NXX being the prefix whichidentifies trunk group 8 to the PSTN 2. This phone number represents theprogramming function which the subscriber wishes to accomplish. Controlthen passes to step 3705 where a `set DID received` signal is sent tothe trunk interface 3500, indicating that the multifrequency data hasbeen received. Control then passes to step 3706 where a determination ismade as to whether the dialed number was of the form 800--NXX--00ab ,and if the dialed number was not of this form then control passes to aconnector labelled "SAF EXT" at reference 3707. If at step 3706 it isdetermined that the dialed number is of the form 800 --NXX--00ab , thencontrol passes to step 3710 where a `request master record` message isconstructed using the ANI received in step 3703, and the message is sentvia data network interface 3507 to the CPF 100. Control then passes tostep 3711 where a determination is made as to whether a response hasbeen received to the `request master record` message, and if such aresponse is not received control remains at step 3711. If the responsemessage is received by network interface 3507, then control passes tostep 3712 where a determination is made as to whether a valid subscribermaster record 700 is included in the returned message. If a validsubscriber master record is not included, then control passes to theconnector labelled "SAF REORDER" shown at reference 3713. If at step3712 a valid subscriber master record 700 is found, then control passesto step 3714 where the DID number 701 is removed from the subscribermaster record 700. Control then passes to step 3715 where a `mode memoryinquiry` message is constructed using the DID number 701 and the digits`ab` as detected in step 3706, and the message is sent via data networkinterface 3507 to the CPF 100. Control then passes to step 3716 where adetermination is made as to whether a response has been received to the`mode memory inquiry` message, and if such a response is not receivedcontrol remains at step 3716. If the response message is received bynetwork interface 3507, then control passes to step 3717 where adetermination is made as to whether a valid mode memory 800 is includedin the returned message. If a valid mode memory 800 is not included,then control passes to the connector labelled "SAF REORDER" shown atreference 3718. If at step 3717 a valid mode memory 800 is found, thencontrol passes to step 3720, which is identified by a connector labelled"SAF UPDATE" at reference 3719. At step 3720 a `change to new modememory` message is constructed, again using DID number 701 and thedigits `ab` as detected in step 3706, and the message is sent via datanetwork interface 3507 to the CPF 100. Control then passes to step 3721where the subscriber is prompted by call processor 3504: "Accepted, youhave selected mode memory . . . `ab`", where `ab` are the digitsdetected in step 3706. Control then passes to step 3722 where the callprocessor 3504 causes trunk 8 to be placed on hook, and then controlreturns to step 3701. If at step 3706 it is determined that the dialednumber was not of the form `800--NXX--00ab`, then control passes to aconnector labelled "SAF EXT" as shown at reference 3707. A connectorlabelled "SAF EXT" is shown at reference 3724, which causes control tobe passed to step 3725 where a determination is made as to whether thedialed number was of the form 800--NXX--cdef, where the digits `cd` donot equal `00`. If the dialed number is not of this form, then controlpasses to a connector labelled "SAF REORDER" shown at reference 3745. Ifat step 3725 it is determined that the dialed number is of this form,then control passes to step 3726 where call processor 3504 prompts thesubscriber by playing a `bong tone`. Control then passes to step 3727where a determination is made as to whether the subscriber has entered aPIN code, and if the PIN code is not entered control remains at step3727. If a PIN code is entered, then control passes to step 3728 where a`request master record` message is constructed using then PIN codeentered in step 3727 and the digits `cdef` detected in step 3706. Thismessage is then sent via data network interface 3507 to the CPF 100.Control then passes to step 3729 where a determination is made as towhether a response has been received to the `request master record`message, and if such a response is not received control remains at step3729. If the response message is received by network interface 3507,then control passes to step 3750 where a determination is made as towhether a valid subscriber master record 700 is included in the returnedmessage. If a valid subscriber master record is not included, thencontrol passes to the connector labelled "SAF REORDER" shown atreference 3751. If at step 3750 a valid subscriber master record 700 isfound, then this indicates that CPF 100 found a subscriber master record700 which had a DID number 701 which had the same last four digits asthe digits `cdef` detected in step 3706, and also had the same PIN code702 as that detected in step 3727. Control passes to step 3730 where thesubscriber is prompted: "Please enter your new mode memory number."Control then passes to step 3731 where a determination is made as towhether the subscriber has entered a memory number `10 to `99`, and ifsuch a number has not been entered, then control remains at step 3731.If a mode memory number is entered, then control passes to step 3732where a `mode memory inquiry` message is constructed using the DIDnumber 701 and the and the memory number as detected in step 3731, andthe message is sent via data network interface 3507 to the CPF 100.Control then passes to step 3733 where a determination is made as towhether a response has been received to the `mode memory inquiry`message, and if such a response is not received control remains at step3733. if the response message is received by network interface 3507,then control passes to step 3734 where a determination is made as towhether a valid mode memory 800 is included in the returned message. Ifa valid mode memory 800 is not included, then control passes to theconnector labelled "SAF REORDER" shown at reference 3745. If at step3734 a valid mode memory 800 is found, then control passes to step 3735,where a determination is made as to whether the mode memory which wasreceived in the message requires an `externally entered` memory. This isdetermined by inspecting the transfer number field of the mode memory800. If it has an `externally entered number` tag, then the mode memorydoes require an `externally entered number`. If at step 3735 it isdetermined that an `externally entered number` is not required, thencontrol passes to a connector labelled "SAF UPDATE" at reference 3736,which as described earlier causes the mode memory requested to beinvoked. If at step 3735 it is determined that an `externally enterednumber` is required, then control passes to step 3737 where thesubscriber master record 700 as acquired at step 3750 is retrieved frommemory. Control then passes to step 3738 where the mode memory 800 thatwas acquired in step 3734 is copied field-by-field to the subscribermaster record. Control then passes to step 3740, where the ANI numberacquired in step 3703 is copied to the transfer number field 707 of thesubscriber master record 700. Control then passes to step 3741 where an`update master record` message is constructed using this master record,and the message is sent via data network interface 3507 to CPF 100.Control then passes to step 3742 where the subscriber is prompted:"Accepted, you have selected mode memory . . . xx", where the digits`xx` are the digits entered by the subscriber at step 3731. Control thenpasses to step 3743 where the trunk 8 is placed on hook, and thencontrol returns to the Subscriber Access Facility Main Task entry pointas shown at reference 3748. If at step 3734, it is determined that themode memory received in the message was not valid, then control passesto a connector labelled "SAF REORDER" at reference 3745, which causescontrol to pass to step 3746 where the call processor 3504 plays a`reorder signal` to the subscriber, indicating that the call is beingterminated. Control then passes to step 3747 where the trunk 8 is placedon hook. Control then returns to the Subscriber Access Facility MainTask entry point as shown at reference 3748.

A block diagram of the Communicator Access Facility (CAF) 125 isillustrated in FIG. 38. As shown, the CAF 125 contains a serial portinterface module 3800 which connects to the serial datalink 10, and adata network interface 3801 which connects to the high speed datanetwork 150. The functions of data network interface 3801 are well knownin the art, and many products, such as the Model COM4i from DigiboardCorporation, exist commercially which can accomplish these functions.The operation of the CAF 125 is controlled by CPU module 3802, whichconsists of a microprocessor, a boot ROM, RAM, and disk. The boot ROM isused to initialize the CPU and load the control program into memory fromdisk. Operation of the CAF 125 is then controlled by the controlprogram. The control program is described in the explanation whichaccompanies FIG. 39. Still referring to FIG. 38, the serial port 3800,data network interface 3801, and the CPU module 3802 are all shownconnected to internal bus 3803.

A flowchart of the Communicator Access Facility Main Task is illustratedin FIG. 39. This program is loaded into memory and executed by CPU 3802of the CAF 125. The Communicator Access Facility Main Task is entered atstep 3900 and control passes to step 3901 where a determination is madeas to whether a `page message` is received via data network interface3801, and if a `page message` is received then control passes to step3902 where the page message is sent via serial port 3800 and datalink 10to packet radio transceiver 9. Control then passes to step 3903 where an`acknowledge timer` is started, and the `page message` just sent issaved and associated with this `acknowledge timer`. Control then passesto step 3904. Control also passes to step 3904 if a `page message` isnot received as determined at step 3901. At step 3904, a determinationis made as to whether a `phone number` message has been received from acommunicator 11 via the serial port interface 3800. If such a messagehas been received, then control passes to step 3905 where thesubscriber's DID number 701 is retrieved form the message, and a`request master record` message is created and sent to the CPF 100 viadata network interface 3801. When the response is received from the CPF100 via the data network interface 3801, the subscriber master record isretrieved from the response message. Control then passes to step 3906where the transfer number field 707 of the subscriber master record 700is updated per the phone number received from the communicator 11 atstep 3904. Control then passes to step 3907 where an `update masterrecord` message is then constructed and sent back to the CPF 100 viadata network interface 3801. Control then passes to step 3908, where an`acknowledge message` is sent back to the communicator 11 via serialport 3800. Control then passes to step 3909. Control also passes to step3909 if a `phone number` message is not detected at step 3904. At step3909 a determination is made as to whether a `new mode memory` messageis received from a communicator 11 via serial port 3800. If this messagetype has been received then control passes to step 3910 where a `changeto new mode memory` message is constructed and sent to CPF 100 via datanetwork interface 3801, and then control passes to step 3908 where an`acknowledge` message is sent back to the communicator 11 as describedearlier. If at step 3909 a `new mode memory request` message is notdetected, then control passes to step 3911 where a determination is madeas to whether a `set dynamic mode assignment mode` message is receivedfrom a communicator 11 via serial port 3800. If this message type isreceived, then control passes to step 3912, where a `set dynamic modeassignment flag` message is constructed and sent to CPF 100 via datanetwork interface 3801. Control then passes to step 3908 where an`acknowledge` message is sent back to the communicator 11 as describedearlier. If at step 3911 a `set dynamic mode assignment mode` message isnot detected, then control passes to step 3913 where a determination ismade as to whether a `disable dynamic mode assignment mode` message isreceived from a communicator 11 via serial port 3800. If this messagetype is received, then control passes to step 3914, where a `cleardynamic mode assignment flag` message is constructed and sent to CPF 100via data network interface 3801. Control then passes to step 3908 wherean `acknowledge` message is sent back to the communicator 11 asdescribed earlier. If at step 3913 a `disable dynamic mode assignmentmode` message is not detected, then control passes to step 3915 where adetermination is made as to whether the `acknowledge timer` has justexpired. If the `acknowledge timer` has just expired, as determined atstep 3915, then control passes to step 3916 where the message which wasassociated with this `acknowledge timer` is again sent to thecommunicator 11 via serial port interface 3800, and control then passesto step 3903. If at step 3915 it is determined that an `acknowledgetimer` has not just expired, then control passes to step 3917 where adetermination is made as to whether an `acknowledge` message is receivedfrom a communicator via serial port interface 3800, and if an`acknowledge` message is not received, then control returns to step3901. If an `acknowledge` message is received, as determined at step3917, then the `acknowledge` timer which is associated with the lastmessage sent to the communicator 11 identified in the `acknowledge`message is cleared. Control then returns to step 3901.

A flowchart of the Communicator Main Task is illustrated in FIG. 40.This task is executed by microprocessor 200, and controls all operationsof the communicator 11. The Communicator Main Task is entered at step4000 and control passes to step 4001 where a determination is made as towhether a `page` message is detected at the receive data input 245. If a`page` message is detected, and the message contains the pager numberwhich corresponds to this communicator, then control passes to step4002, where a signal is sent via output port 250 causing the beeper 260to generate an alerting sound. Control then passes to step 4003 where adisplay number is retrieved from the decoded `page` message, and isoutput to the display 210. Control then passes to step 4004 where abrief `acknowledge` message is sent via transmit data port 215 to packetdata encoder 220 and then to rf transmitter 225. All RF transmissionsfrom communicator 11 are sent as brief packet. `bursts`, thusmaintaining a longer life for battery 290. Control then returns to step4001. If at step 4001 it is determined that a `page` message is notreceived, then control passes to step 4005 where a determination is madeas to whether a `manual phone number flag` is set, and if the flag isnot set control passes to step 4006 where a determination is made as towhether a data message is received from the ultrasonic transmitter 12via the serial data input 280, and if such a message is received thencontrol passes to step 4007. At step 4007 a determination is made as towhether a `auto phone number flag` is set and if the flag is not setcontrol passes to step 4009 where the `auto phone number flag` is set.Control then passes to step 4010 where the phone number which wasembedded in the message received at step 4006 is stored in the memory ofmicroprocessor 200. Control then passes to step 4011 where a `phonenumber` message is constructed using the phone number of step 4006, andthe subscriber DID number 701, as prestored in the RAM of microprocessor200. This message is then sent to transmit data port 215. Control thenpasses to step 4012 where an `acknowledge timer` is started. Controlthen passes to step 4013 where a `20 second ultrasonic data timer` isstarted. Control then returns to step 4001. If at step 4007 it isdetermined that the `auto phone number flag` is set, then control passesto step 4008, where a determination is made as to whether the phonenumber received embedded in the message at step 4006 is the same as thephone number currently in memory as stored at step 4010. If the phonenumbers match then control passes to step 4013. If at step 4008 it isdetermined that the phone numbers are different, indicating that thesubscriber has moved to a different room, then control passes to step4009. If at step 4005 it is determined that the `manual phone numberflag` is set, or if at step 4006 it is determined that a data message isnot being received via input port 280, then control passes to step 4014where a determination is made as to whether the `20 second ultrasonicdata timer` has just expired, and if it has, indicating that thesubscriber is no longer near an ultrasonic transmitter 12, then controlpasses to step 4015. At step 4015 the `auto phone number flag` iscleared and control passes to step 4016 where the a `new mode memoryrequest` message is constructed using the stored subscriber DID number701, and the stored `default mode memory`. Control then passes to step4017 where an `acknowledge timer` is started, and then control returnsto step 4001. If at step 4014 it is determined that the `20 secondultrasonic data timer` has not just expired, then control passes to step4018 where a determination is made as to whether thE `acknowledge timer`has just expired, and if it has just expired control passes to step 4019where the message is re-sent via transmit data port 215. Then at step4020, an `acknowledge timer` is started, and then control returns tostep 4001. If at step 4018 it is determined that the `acknowledge timer`has not expired, then control passes to step 4021 where a determinationis made as to whether an `acknowledge` message with a pager number thatcorresponds to this communicator 11 is received via the receive datainput 245, and if such a message is received then control passes to step4022 where the `acknowledge timer` is cleared. Control the returns tostep 4001. If at step 4021 it is determined that an `acknowledge`message is not received, then control passes to step 4023 where adetermination is made as to whether the subscriber is entering data viathe keypad 205, and if the subscriber is not entering data, then controlreturns to step 4001. If the subscriber is entering data via the keypad,as determined at step 4023, then control passes to step 4024 where adetermination is made as to whether the subscriber wishes to program theTelephone Control System 1 to operate under control of a new modememory. If this is the case, then control passes to step 4025 where a`new mode memory request message` is constructed and sent to transmitdata port 215, and then control passes to step 4033 where an`acknowledge timer` is started, and then control returns to step 4001.If at step 4024 it is determined that the subscriber is not selecting anew mode memory, then control passes to step 4026 where a determinationis made as to whether the subscriber is selecting the dynamic modeassignment feature, and if this is the case, then control passes to step4027 where a `set dynamic mode assignment mode` message is constructedand sent to transmit data port 215, and then control passes to step4033. If at step 4026 it is determined that the subscriber is notselecting the dynamic mode assignment feature, then control passes tostep 4028 where a determination is made as to whether the subscriber isdisabling the dynamic mode assignment feature, and if this is the case,then control passes to step 4029 where a `disable dynamic modeassignment mode` message is constructed and sent to transmit data port215, and then control passes to step 4033. If at step 4028 it isdetermined that the subscriber is not disabling the dynamic modeassignment mode, then control passes to step 4030 where a determinationis made as to whether the subscriber is entering a phone number, and ifa phone number is being entered then control passes to step 4031 wherethe `manual phone number flag` is set. Control then passes to step 4032where a `phone number` message is constructed using the phone numberentered by the subscriber at step 4030, and this message is transmittedvia transmit data port 215. Control then passes to step 4033. If at step4030 it is determined that the subscriber is not entering a phonenumber, then control passes to step 4034 where a determination is madeas to whether the subscriber is selecting the auto-phone number mode,and if this is the case, then control passes to step 4035 where the`manual phone number flag` is cleared, and control then passes to step4015. If at step 4034 it is determined that the subscriber is notselecting the autophone number mode, then control passes to step 4036,where a determination is made as to whether the subscriber is enteringnew program data such a the stored DID number, the stored pager number,and the stored default mode memory. If the subscriber is attempting tomodify any of these parameters, then control passes to step 4037 wherethe new data is stored in the RAM of microprocessor 200. Otherwise,control returns to step 4001. As can be understood from the explanationabove, one of the primary functions of the Communicator 11 and theCommunicator Access Facility 125 is to take the phone number identifyingthe location of the subscriber, as transmitted by ultrasonic transmitter12, and cause that number to be used by the Telephone Control System 1as the forwarding number for the subscriber. It should also beunderstood that in a similar fashion the ultrasonic transmitter 12 maytransmit a `mode memory number` which, if sent to the Telephone ControlSystem 1 via the Communicator 11 and the Communicator Access Facility125, would allow that mode memory to be used by the Telephone ControlSystem 1 to specify the call handling mode for the subscriber. In thiscase, the Communicator 11 receives a data message from an ultrasonictransmitter 12 and determines that the message contains a mode memory.The Communicator 11 then transmits a `new mode memory request` message,which includes the subscriber's DID number 701, via its RF transmitter225. This message is received by packet radio transceiver 9 and sent tothe CAF 125 via data line 10. The CAF 125 then sends a "change to newmode memory" message to CPF 100 via data network interface 3801. CPF 100then copies the mode memory referred to in the message to thissubscriber's "subscriber master record" 700. To further illustrate thisprocess, consider the example of a hospital operating room where anultrasonic transmitter 12 is transmitting a message containing a modememory number which corresponds to the "message center" call handlingmode. If a doctor, carrying a Communicator 11 enters the operating room,then the Telephone Control System is automatically programmed to sendhis calls to the "message center."

A block diagram of the Pager Dialing Facility (PDF) 105 is illustratedin FIG. 41. Standard tip-ring line 5 is shown connected to callprocessor 4100, which contains a tip-ring interface, DTMF generators,call progress detectors. The functions of call processor 4100 are wellknown in the art, and many products, such as the Model D41B manufacturedby Dialogic Corporation, exist commercially which can accomplish thesefunctions. The PDF 105 also contains a CPU 4101 which contains amicroprocessor, a boot ROM, a RAM, and a disk. The PDF 105 also containsa data network interface module 4103 which connects to the high speeddata network 150. The functions of data network interface 4103 are wellknown in the art, and many products, such as the Model COM4i fromDigiboard Corporation, exist commercially which can accomplish thesefunctions. The call processor 4100, the CPU 4101, and the data networkinterface 4103 are all shown connected to an internal data bus 4102. TheCPU 4101 initializes itself at power-up using the boot ROM and thenloads a control program into memory which it then executes.

A flowchart of the Pager Dialing Facility Main Task is illustrated inFIG. 42. This program is loaded into memory and executed by CPU 4101 ofthe PDF 105. The Pager Dialing Facility Main Task is entered at step4200 and control passes to step 4201 where a determination is made as towhether a `page` message is received from CPF 100 via data networkinterface 4201, and if the message is not received then control remainsat step 4201. If a `page` message is received, then the `pager number`and the `display digits` are retrieved from the message, and controlpasses to step 4202 where an `attempt count` is set to a value of 1.Control then passes to step 4203, where line 5 is taken off hook, andthen control passes to step 4204 where call processor 4100 dials the`pager number`. Control then passes to step 4205 where a determinationis made as to whether the call has not been answered due to a time-outor a non-answer signal such as operator intercept, busy, or reorder. Ifsuch a signal or time-out condition is not detected then control passesto step 4206 where a determination is made as to whether the call hasbeen answered by the paging terminal, and if the call has not beenanswered, control returns to step 4205. If at step 4206 it is determinedthat the call is answered, then control passes to step 4207 where a 1second pause is initiated, and then control passes to step 4208 wherethe `display digits` are dialed by call processor 4100. Control thenpasses to step 4209 where the pager termination digit `#` is dialed, andthen control passes to step 4210 where the line 5 is placed on hook.Control then passes to step 4211 where a 2 second delay is initiatedbefore returning control to step 4201. If at step 4205 it is determinedthat a time-out or non-answer signal is detected, then control passes tostep 4212 where the `attempt count` is incremented. Control then passesto step 4213 where the `attempt count` is checked and if it is found tobe not equal to ten then control passes to step 4214 where the line 5 isplaced on hook and then after a 2 second pause a step 4215, controlreturns to step 4203 to make another attempt at dialing this number. Ifat step 4213 it is found that the `attempt count` is now equal to 10,then this page is abandoned by returning control to step 4201.

A block diagram of the Client Services Facility (CSF) 130 is illustratedin FIG. 43. The Client Services Facility (CSF) 130 is used by theservice bureau which provides the Telephone Control System service toit's subscribers. The CSF 130 allows a client services representative togain access to the database contained in the CPF 100, and thus be ableto review and modify the subscriber master records 700 and mode memories800 of the subscribers. The CSF 130 contains a CPU 4300 which contains amicroprocessor, a boot ROM, a RAM, and a disk. The CSF 130 also containsa data network interface module 4301 which connects to the high speeddata network 150. The functions of data network interface 4301 are wellknown in the art, and many products, such as the Model COM4i fromDigiboard Corporation, exist commercially which can accomplish thesefunctions. Also shown is a display monitor 4302, and a keyboard 4303.The CPU 4300 initializes itself at power-up using the boot ROM and thenloads a control program into memory which it then executes.

A flowchart of the Client Services Facility Main Program is illustratedin FIG. 44. This program is loaded into memory and executed by CPU 4300of the CSF 130. The Client Services Facility Main Program is entered atstep 4400 and control passes to step 4401 where a determination is madeas to whether the client services representative has entered the DIDnumber for a particular subscriber and has requested a subscriber masterrecord 700, and if this is the case then control passes to step 4402where a `request master record` message is sent via data networkinterface 4301 to CPF 100. Control then passes to step 4403 where thesubscriber master record 700 is removed from the response message fromthe CPF 100, and is displayed on monitor 4302. Then at step 4404, theclient services representative is allowed to review and modify thecontents of the subscriber master record 700 using monitor 4302 andkeyboard 4303. Then at step 4405 a determination is made as to whetherthe client services representative is completed with this operation, andif not, then control returns to step 4404. When the operation iscomplete, then control passes to step 4406 where an `update masterrecord` message is constructed and sent to CPF 100 via data networkinterface 4301. Control then returns to step 4401. If at step 4401 it isdetermined that the client services representative is not requesting asubscriber master record 700, then control passes to step 4407 where adetermination is made as to whether the client services representativehas entered the DID number for a particular subscriber and has requesteda subscriber mode memory 800, and if this is the case then controlpasses to step 4408 where a `mode memory inquiry` message is sent viadata network interface 4301 to CPF 100. Control then passes to step 4409where the mode memory 800 is removed from the response message from theCPF 100, and is displayed on monitor 4302. Then at step 4410, the clientservices representative is allowed to review and modify the contents ofthe mode memory 800 using monitor 4302 and keyboard 4303. Then at step4411 a determination is made as to whether the client servicerepresentative is completed with this operation, and if not, thencontrol returns to step 4410. When the operation is complete, thencontrol passes to step 4412 where an `update mode memory` message isconstructed and sent to CPF 100 via data network interface 4301. Controlthen returns to step 4401. If at step 4407 it is determined that theclient services representative is not requesting a new mode memory, thecontrol passes to step 4413 where a determination is made as to whetherthe client services representative has entered a DID number and wishesto activate a new subscriber for this number. If this is the case thencontrol passes to step 4414 where a `create a new subscriber message` isgenerated with this DID number and the message is sent to CPF 100 viadata network interface 4301. Control then returns to step 4401. If atstep 4413 it is determine that the client services representative doesnot wish to create a new subscriber, then control returns to step 4401.

While a preferred embodiment of the invention has been described indetail it should be apparent that many modifications and variationsthereto are possible, all of which fall within the true spirit and scopeof the invention.

For example, while the preferred embodiment of the control systemprovides voice synthesized type courtesy messages, any appropriatetones, beeps, etc. would serve as a courtesy message and such is the useof that term throughout the claims appended hereto. In addition, theterm "line" as used herein and in the claims appended hereto includesboth lines and trunks.

In addition, whereas the preferred embodiment of the invention uses theterm "line" to describe the interconnecting medium between the controlsystem and the central exchange, it should be understood throughout thespecification and claims that "line" refers to tip and ring pairs,trunks or any other form of connecting circuits.

We claim:
 1. A control system for connection to a telephone network,said network providing information identifying a network address of acalling station and including a switch which is capable of changingcommunication paths of a plurality of intelligence streams to and from aplurality of communication ports, the control system comprising:(a)communications means for communicating via said ports to receiveintelligence from and to transmit intelligence to said network; (b)control means for transmitting switching commands to said switch tochange at least one of said paths to redirect an establishedintelligence stream between said network and said system to at leastanother one of said communication ports; and (c) processing means fordetermining changes to one or more of said communication paths and foreffecting said changes by sending switch control commands to saidswitch, for identifying a call to said system by a user, and forutilizing said information as a stored forwarding number, whereby theuser can update the forwarding number without manually entering thenumber of the telephone at the user's present location.
 2. A controlsystem for connection to a telephone network, said network including atleast one switch which is capable of changing communication paths of aplurality of intelligence streams to and from a plurality ofcommunication ports, the control system comprising:(a) communicationsmeans for communicating via said ports to receive intelligence from andto transmit intelligence to said network via one of said communicationports in said at least one switch, said intelligence including voiceintelligence; (b) switch control means for transmitting switchingcommands to said at least one switch to change at least one of saidpaths to redirect an established intelligence stream between saidnetwork and said system to at least another one of said communicationports; and (c) processing means for determining changes to one or moreof said communication paths in accordance with at least two enabledmodes and for effecting said changes by sending switch control commandsto said switch, wherein the processing means further comprises means foridentifying a call to said system from a specific user requesting apresent mode by which the system processes incoming calls directed tosaid specific user, recalling from a memory the present mode by whichthe system processes incoming calls directed to said specific user,transmitting courtesy messages which indicate said current mode andinform the user as to how to enter a mode command to change said mode,and responding to said user transmitting a specific mode command toappropriately change the mode by which the system processes subsequentincoming calls directed to said user, and wherein said user modecommands are entered via voice commands from said user.
 3. A telephonesystem for providing enhanced telephone services, said systemcomprising:(a) a telephone switch servicing a plurality of telephonesubscribers via communication facilities of said switch, saidcommunication facilities handling both voice and data communications;(b) a telephone switch controller coupled to said switch via saidcommunication facilities, said controller controlling said switch toprovide an enhanced service not otherwise available in said switch, saidcontroller communicating with said switch via said communicationfacilities by means of data in the form of switch functions, saidcontroller including a memory for storing a sequence of switchfunctions, said sequence defining said enhanced service, said controllercommunicating a prompt via said communication facilities to a caller inresponse to a telephone call placed by said caller to a predeterminedtelephone address associated with a subscriber and communicating saidsequence of switch functions stored in said memory to said switchingsystem in response to a command received from said caller to providesaid enhanced service, said controller including a screening mode ofoperation wherein during the telephone call, said controller transmits atransmit identification prompt for the caller to transmit identificationinformation, records the caller's response to said transmitidentification prompt, instructs said switch to transfer said telephonecall to a subscriber-selected one of a plurality of telephone networkaddresses represented in said memory means, and transmits a storedresponse of the caller.
 4. The telephone system of claim 3, wherein saidcontroller responds to a command response from the user to appropriatelyprocess said telephone call.
 5. The telephone system of claim 4, whereinsaid controller monitors said telephone call for a predetermined commandand, upon receipt of the predetermined command, terminating, if started,or skipping, if not yet initiated:(i) transmission of said transmitidentification prompt to said caller, (ii) recordation of the caller'sresponse and (iii) transmission of the stored response to thesubscriber,and immediately instructing said switch to transfer saidtelephone call to a subscriber-selected one of a plurality of telephonenetwork addresses represented in said memory means.
 6. A telephonesystem for providing telephone services, said system comprising:(a) atelephone switch servicing a plurality of telephone subscribers viacommunication facilities of said switch, said communication facilitieshandling both voice and data communications; (b) a telephone switchcontroller coupled to said switch via said communication facilities,said controller communicating with said switch via said communicationfacilities by means of data in the form of switch functions, saidcontroller including a memory for storing a plurality of sequences ofswitch functions, said controller communicating a prompt via saidcommunication facilities to a caller in response to a telephone callplaced by said caller to a predetermined telephone address associatedwith a subscriber, and communicating a selected sequence of switchfunctions stored in said memory to said switching system in response toa command received from said caller, said controller including a timermode of operation wherein said memory means stores a timer command modeand a corresponding time interval command, said controller changing apresently commanded mode to a different mode for said commanded intervaland thereafter reverting to another call processing mode other than saiddifferent mode.
 7. The telephone system of claim 6, wherein saidtelephone switch provides telephone network information related to theidentity of a caller to said controller, and wherein the controlleridentifies a call placed by a subscriber and utilizes said telephonenetwork information related to the identity of the caller to update asequence of switch functions stored in said memory as a forwardingnumber, whereby the subscriber can update said forwarding number withoutmanually entering the number of the telephone at the subscriber'spresent location.
 8. A telephone system for providing telephoneservices, said system comprising:(a) a telephone switch servicing aplurality of telephone subscribers via communication facilities of saidswitch, said communication facilities handling both voice and datacommunications; (b) a telephone switch controller coupled to said switchvia said communication facilities, said controller communicating withsaid switch via said communication facilities by means of data in theform of switch functions, said controller including a memory for storinga plurality of sequences of switch functions, said controllercommunicating a prompt via said communication facilities to a caller inresponse to a telephone call placed by said caller to a predeterminedtelephone address associated with a subscriber, and communicating aselected sequence of switch functions stored in said memory to saidswitching system to route the telephone call to another network address,wherein said telephone switch provides telephone network informationrelated to the identity of a caller to said controller, and wherein thecontroller identifies a call placed by a subscriber and utilizes saidtelephone network information related to the identity of the caller toupdate a sequence of switch functions stored in said memory as aforwarding number, wherein the subscriber can update said forwardingnumber without manually entering the number of the telephone at thesubscriber's present location.
 9. A telephone system for providingenhanced telephone services, said system comprising:(a) a telephoneswitch servicing a plurality of telephone subscribers via communicationfacilities of said switch, said communication facilities handling bothvoice and data communications; (b) a telephone switch controller coupledto said switch via said communication facilities, said controllercontrolling said switch and only one said switch to provide an enhancedservice not otherwise available in said switch, said controllercommunicating with said switch via said communication facilities bymeans of data in the form of switch functions, said controller includinga memory for storing a sequence of switch functions, said sequencedefining said enhanced service, said controller communicating a voiceprompt via said communication facilities to a caller in response to atelephone call placed by said caller to a predetermined telephoneaddress associated with a subscriber, and communicating said sequence ofswitch functions stored in said memory to said switching system inresponse to a command received from said caller to provide said enhancedservice, said telephone switch providing telephone network informationrelated to the identity of a caller to said controller, whereintelephone calls to change a mode of operation of said controller aremade by inputting a sequence which includes digits to identify one of aplurality of call processing modes and wherein the controller includesmeans for identifying a call to said system by said subscriber bymatching the telephone network information related to the identity ofthe caller with a memory stored number for said subscriber andprocessing said digits as a specific mode command control signal fromsaid subscriber.
 10. A control system for connection to a telephonenetwork, said control system comprising:(a) communication means forconnection to communication facilities of said network for processingtelephone calls via said facilities; (b) control means for controllablyrouting a call placed to one telephone network address to anothertelephone address of said network; (c) memory means for storing signalsincluding signals representative of telephone network addresses; and (d)electronic processing means for processing a telephone call received viasaid communication means, said processing means including a callprocessing mode wherein the electronic processing means responds to anincoming call with a prompt indicating to a caller that said incomingcall can be connected to any one of a plurality of locations, eachlocation having a telephone network address represented in said memorymeans and, responsive to the caller transmitting a command identifyingone of said locations, causing said control means to transmit a commandto said network to connect said incoming call to the telephone networkaddress corresponding to said one of said locations identified by saidcaller, said incoming call being thereby connected in said network andexternally of said control system with the telephone network addresscorresponding to said one of said locations identified by said caller,said processing means including a voice screening mode, the processingmeans storing as a user call processing mode control signal avoice-screening mode signal and, upon recalling said voice-screeningmode signal in processing an incoming call, transmitting a prompt forthe caller to transmit identification information, recording a responseof the caller to said prompt, implementing a call to the user'stelephone network address, transmitting the caller's response, andresponding to a command response from the user to appropriately processsaid incoming call.
 11. A control system for connection to a telephonenetwork, said control system comprising:(a) communication means forconnection to communication facilities of said network for processingtelephone calls via said facilities; (b) control means for controllablyrouting a call placed to one telephone network address to anothertelephone address of said network; (c) memory means for storing signalsincluding signals representative of telephone network addresses; and (d)electronic processing means for processing a telephone call received viasaid communication means, said processing means including a callprocessing mode wherein the electronic processing means responds to anincoming call with a prompt indicating to a caller that said incomingcall can be connected to any one of a plurality of locations, eachlocation having a telephone network address represented in said memorymeans and, responsive to the caller transmitting a command identifyingone of said locations, causing said control means to transmit a commandto said network to connect said incoming call to the telephone networkaddress corresponding to said one of said locations identified by saidcaller, said call being thereby connected in said network and externallyof said control system with the telephone network address correspondingto said one of said locations identified by said caller, said telephonenetwork providing telephone network information related to the identityof a caller to said control system, and wherein the processing meansfurther comprises means for identifying a call to said system by a user;and utilizing the telephone network information related to the identityof the caller as a stored forwarding number, whereby the user can updatetheir stored forwarding number without manually entering a number of thetelephone at the user's present location.
 12. A method of receiving andprocessing incoming telephone calls to a telephone network, said methodcomprising the steps of:(a) storing in a memory electronic signalsincluding signals representative of telephone network addresses; and (b)processing an incoming telephone call from a caller, includingcommunicating information to said caller indicating that said incomingcall can be routed to any one of at least two telephone networkaddresses, (c) sensing transmission by the caller of a commandcorresponding to a desired telephone network address and, responsivethereto, transmitting a command from a telephone control system to saidtelephone network to route said incoming call via the network andexternally of said telephone control system to the telephone networkaddress corresponding to the command transmitted by said caller, and (d)storing as a user mode control signal a voice-screening mode signal and,upon recalling said voice-screening mode signal in processing saidincoming call, transmitting a prompt to said caller indicating that thecaller transmit specific identification information, recording thecaller's response to said prompt, implementing a call to a telephonenetwork address of a user, transmitting the caller's response, andresponding to a command response from the user to appropriately disposeof the caller's call.
 13. A method of receiving and processing incomingtelephone calls to a telephone network, said method comprising the stepsof:(a) storing in a memory electronic signals including signalsrepresentative of telephone network addresses; and (b) processing anincoming telephone call from a caller, including communicatinginformation to said caller indicating that said incoming call can berouted to any one of at least two telephone network addresses, (c)sensing transmission by the caller of a command corresponding to adesired telephone network address and, responsive thereto, transmittinga command from a telephone control system to said telephone network toroute said incoming call via the network and externally of saidtelephone control system to the telephone network address correspondingto the command transmitted by said caller, and (d) receiving anautomatic number identification of a caller (ANI), identifying a call tosaid system by a user, and utilizing said ANI as a stored forwardingnumber of the user, whereby the user can update his or her forwardingnumber without manually entering a number of a telephone at a presentlocation of the user.
 14. The method of claim 13, further including thesteps of identifying if a user's number is busy or not answered and, insuch event, disposing of said call in a predetermined manner.